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

Удалить символические ссылки

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

В этом руководстве будет показано, как удалять символические ссылки в системах Linux/UNIX с помощью команд rm , unlink и find .

Прежде чем начать

Чтобы удалить символическую ссылку, необходимо иметь права на запись в каталог, содержащий её. В противном случае возникнет ошибка «Операция не разрешена».

При удалении символической ссылки файл, на который она ссылается, остаётся нетронутым. Сам файл не будет изменён или модифицирован.

Используйте команду ls -l , чтобы проверить, является ли заданный файл символической ссылкой, и найти файл или каталог, на который указывает символическая ссылка.

 ls -l /usr/bin/python
 lrwxrwxrwx 1 root root 9 Apr 16 2018 /usr/bin/python -> python2.7

Первый символ «l» указывает на то, что файл является символической ссылкой. Символ «->» указывает на файл, на который указывает символическая ссылка.

Команда rm удаляет указанные файлы и каталоги.

Чтобы удалить символическую ссылку, вызовите команду rm , указав в качестве аргумента имя символической ссылки:

 rm symlink_name

Команда завершится с нулевым результатом, и после успешного выполнения никаких выходных данных не будет отображено.

С помощью rm можно удалить сразу несколько символических ссылок. Для этого передайте имена символических ссылок в качестве аргументов, разделённых пробелом:

 rm symlink1 symlink2

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

 rm -i symlink_name

Для подтверждения введите y и нажмите Enter .

 rm: remove symbolic link 'symlink_name'?

Если символическая ссылка указывает на каталог, не добавляйте косую черту / в конце. В противном случае возникнет ошибка:

 rm symlink_to_dir/
 rm: cannot remove 'symlink_to_dir/': Is a directory

Если имя аргумента заканчивается на / , команда rm предполагает, что файл является каталогом. Ошибка возникает, поскольку без опций -d или -r rm не может удалять каталоги.

В целях безопасности никогда не используйте опцию -r при удалении символических ссылок с помощью rm . Например, если вы введёте:

 rm -f symlink_to_dir/

Содержимое целевого каталога будет удалено.

Команда unlink удаляет указанный файл. В отличие от rm , unlink принимает только один аргумент.

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

 unlink symlink_name

Если команда выполнена успешно, вывод не отображается.

Не добавляйте косую черту / в конце имени символической ссылки, поскольку unlink не может удалить каталоги.

Если исходный файл удален или перемещен в другое место, символический файл останется неактивным (поврежденным) и больше не будет работать.

Если удалить или переместить исходный файл в другое место, символический файл останется неактивным (поврежденным).

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

 find /path/to/directory -xtype l
 /path/to/directory/symlink1 /path/to/directory/subdir/symlink2

Команда выведет список всех неработающих ссылок в каталоге и его подкаталогах.

Если вы хотите исключить символические ссылки, содержащиеся в подкаталогах, передайте параметр -maxdepth 1 для find :

 find /path/to/directory -maxdepth 1 -xtype l
 /path/to/directory/symlink1

После того как вы обнаружите неработающие символические ссылки, вы можете вручную удалить их с помощью rm или unlink или использовать опцию -delete команды find :

 find /path/to/directory -xtype l -delete

Заключение

Чтобы удалить символическую ссылку, используйте команду rm или unlink , указав в качестве аргумента имя символической ссылки. Не добавляйте косую черту к имени символической ссылки при удалении символической ссылки, указывающей на каталог.

Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.

rm unlink find terminal

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *