Как найти и удалить битые символические ссылки в Linux

Прочитав эту статью, вы узнаете что такое bash (стандартный командный интерпретатор линукс), научитесь обращаться со стандартными командами: ls, cp, mv… поймете назначение инодов, жестких и символических ссылок и многое другое.

Что именно является символической ссылкой?

Обычно называемые symlink(символической ссылкой) или soft link(мягкой ссылкой), символические ссылки представляют собой очень маленькие файлы. На самом деле символическая ссылка содержит только имя любого файла, на который она указывает, обычно вместе с путем к файловой системе (относительно текущего местоположения или абсолютного значения).

Если файл с именем file1 указывает на файл с именем /apps/files/file-2020, длина file1 будет составлять 21 символ, даже если размер файла file-2020 составляет 2 терабайта. Если он указывает на ./file-2020, длина его будет всего 11 символов. Если указывает на file-2020, то только девять.

Если вы выполните команду, подобную «vi file1» (где file1 — имя символической ссылки), вы в конечном итоге отредактируете любой файл, на который указывает file1, а не содержимое самой символической ссылки. Системы Linux знают, как работать с символическими ссылками, и просто делают правильные вещи. Точно так же, если вы используете такие команды, как cat, more, head или tail, вы будете просматривать содержимое указанного файла.

Если вы удалите символическую ссылку, с другой стороны, вы удалите ссылку, а не ссылочный файл. Опять же, Linux делает то, что имеет смысл. Симлинки предназначены для упрощения использования и обмена файлами — не более того.

Читайте также:  Как установить Linux Mint KDE после прекращения выпусков

Синтаксис

Рассмотрим синтаксис утилиты.

df параметры устройство

Посмотрим, что говорит справка —help.

Результат выполнения df —help

Основные параметры:

  • -a, —all. показать все файловые системы.
  • -h. Опция позволяет показать информацию более наглядной. Размеры выводятся в мегабайтах и гигабайтах.
  • -H. Размеры показываются в гигабайтах.
  • -k. Данная опция показывает на экране терминала размеры в килобайтах.
  • -t, —type. Выводит информацию только про указанную файловую систему.
  • —total. Опция показывает всю информация о дисковом пространстве.

Примеры

Для примера можно просто ввести df без аргументов.

Как видно на скриншоте выше, утилита показала в командной строке информацию о дисковом пространстве, однако выполнения команды в таком варианте есть один большой недостаток. Размеры выводятся в килобайтах (1K-blocks). Чтобы улучшить наглядность выполним:

df -h

Здесь видим:

Синтаксис
  • Filesystem — файловая система;
  • Size — размер в мегабайтах, показывается вся емкость точки монтирования;
  • Used — сколько использовано дискового пространства;
  • Avail — сколько осталось место в мегабайтах;
  • Use% — аналог столбца «Used», только информация выводится в процентах;
  • Monted on — точка монтирования.

Если не хватает места в какой-нибудь точке монтирования, то обычно используют символьные ссылки. В нашем примере в столбце «Use%» 100%  стоит /lib/live/mount/medium.

Символьная ссылка — это файл или каталог, который ссылается на другой файл или каталог.

Синтаксис для создания мягкой ссылки:

ln -s <источник> <название ссылки>

Также можно вывести размер одного конкретного диска.

df -h /dev/sr0

Следующий вариант использования утилиты — вывод информации только с файловой системой «udev».

df -t udev

Вместо udev можно написать etxt4 или любой другую Filesystem.

В итоге можно сказать, что утилита наиболее часто используется на серверах в командной строке, так как в графической оболочке очень много способов узнать объем свободного места без использования терминала.

Читайте также:  Вторые бета-версии iOS 13.4 и iPadOS 13.4 доступны для загрузки

Что такое символическая ссылка?

Символическая ссылка подобна ярлыку из одного файла в другой. Содержимое символической ссылки — это адрес файла или папки, на которую идет ссылка.

Преимущество использования символических ссылок заключается в том, что вы можете ссылаться на файлы и папки на других разделах и других устройствах.

Разница между жесткой ссылкой и символической ссылкой заключается в том, что для существующего файла должна быть создана жесткая ссылка, тогда как мягкая ссылка может быть создана до создания файла, на который она указывает.

Создать символическую ссылку

Чтобы создать символическую ссылку, используйте следующий синтаксис :

ln -s / path / to / file / path / to / link

Если вас беспокоит перезапись существующей ссылки, используйте ключ -b следующим образом:

ln -s -b / path / to / file / path / to / link

Этот переключатель создает резервную копию ссылки, если она существует. Он создает то же имя файла, но с тильдой в конце. Если файл существует с тем же именем, что и символическая ссылка, вы получите сообщение об ошибке.

Заставьте ссылку перезаписать файл, используя следующую команду:

ln -s -f / path / to / file / path / to / link

Не используйте ключ -f без ключа -b , так как вы потеряете оригинальный файл.

Получите сообщение с вопросом, хотите ли вы перезаписать файл, если он существует:

ln -s -i / path / to / file / path / to / link

Большинство современных приложений для просмотра файлов в Linux позволяют создавать символические ссылки с помощью графического интерфейса. Например, используя Thunar File Manager, в любой папке щелкните правой кнопкой мыши пустую область списка файлов и выберите « Создать символическую ссылку» .

Эта команда создает то, что выглядит как новая папка. На самом деле это символическая ссылка, указывающая на папку, в которой вы ее создали. Вставьте эту символическую ссылку куда угодно, и когда вы откроете ее, она всегда откроет исходную папку, в которой вы ее создали.

Читайте также:  Монтируем FTP к файловой системе в Linux

Управление печатью (CUPS)

  • lpstat – отображение статуса заданий, классов и принтеров
    • -a printer — отображение текущего статуса принтера printer
    • -c class — отображение текущего статуса класса class
    • -p printer — отображение текущего статуса принтера/очереди (включен или выключен) printer. Если не указан принтер, то отображается информация о всех принтерах.
    • -d — отображение текущих очередей печати.
  • lpr file — печать файла file на принтер по умолчанию (в новых версиях CUPS заменена на lp)
  • lpinfo — отображение доступных устройств принтеров и драйверов
  • lppasswd username — изменение пароля пользователя username в CUPS в файл /etc/cups/
    • -a username — добавление нового пользователя username
    • -x username — удаление пользователя username
  • lpoptions — управление настройками принтера и отображение настроек.
  • lpadmin — настройка CUPS принтеров и класссов
  • accept очередь — включение возможности принятия в очередь заданий
  • reject очередь — отключение возможности приема новых заданий в очередь
  • enable очередь — запуск очереди очередь
  • disable очередь — остановка очереди печати очередь
    • -с очередь — отмена обработки печати всех документов в очереди (аналог «очистить очередь»)
    • -r причина — указание причины очистки