Учебное пособие по символическим ссылкам в Linux - Как создать и удалить символическую ссылку

Символическая ссылка (также называемая символической ссылкой) - это тип файла в Linux, который указывает на другой файл или папку на вашем компьютере. Символьные ссылки похожи на ярлыки в Windows.

Некоторые люди называют символические ссылки «мягкими ссылками» - типом ссылок в системах Linux / UNIX - в отличие от «жестких ссылок».

Разница между мягкой ссылкой и жесткой ссылкой

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

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

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

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

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

ln -s   

lnэто команда ссылки. В -sфлаг указывает , что ссылка должна быть мягкой. -sтакже можно ввести как -symbolic.

По умолчанию lnкоманда создает жесткие ссылки. Следующий аргумент - path to the file (or folder)вы хотите связать. (То есть файл или папка, для которых вы хотите создать ярлык.)

И последний аргумент - это path to linkсам (ярлык).

Как создать символическую ссылку для файла - пример команды

ln -s /home/james/transactions.txt trans.txt 

После выполнения этой команды вы сможете получить доступ к файлу /home/james/transactions.txtс trans.txt. Любые изменения trans.txtбудут также отражены в исходном файле.

Обратите внимание, что эта команда выше создаст файл ссылки trans.txtв вашем текущем каталоге. Вы также можете создать связанный файл в папке по ссылке:

ln -s /home/james/transactions.txt my-stuffs/trans.txt 

В вашем текущем каталоге должен быть каталог с именем "my-stuffs" - в противном случае команда выдаст ошибку.

Как создать символическую ссылку для папки - пример команды

Как и выше, мы использовали бы:

ln -s /home/james james 

Это создаст папку с символической ссылкой под названием 'james', которая будет содержать содержимое /home/james. Любые изменения в этой связанной папке также повлияют на исходную папку.

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

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

Один из способов сделать это:

ls -l  

Выполнение этой команды на вашем терминале отобразит свойства файла. В результате, если первым символом является маленькая буква L ('l'), это означает, что файл / папка является символической ссылкой.

Вы также увидите стрелку (->) в конце, указывающую на файл / папку, на которую указывает simlink.

Есть два метода удаления символической ссылки:

Как использовать Unlink для удаления символической ссылки

Синтаксис:

unlink  

Это удаляет символическую ссылку, если процесс успешен.

Даже если символическая ссылка находится в форме папки, не добавляйте '/', потому что Linux будет считать, что это каталог, и unlinkне может удалять каталоги.

Как использовать rm для удаления символической ссылки

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

Следовательно, синтаксис следующий:

rm  

Например:

rm trans.txt rm james 

Обратите внимание, что попытка выполнить rm james/приведет к ошибке, потому что Linux будет считать, что 'james /' - это каталог, для которого потребуются другие параметры, такие как rи f. Но мы этого не хотим. Символическая ссылка может быть папкой, но нас интересует только имя.

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

Как найти и удалить неработающие ссылки

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

Например, если файл " transaction.txt" перемещается с /home/jamesна /home/james/personal, ссылка "trans.txt" становится неработающей. Каждая попытка доступа к файлу приведет к ошибке «Нет такого файла или каталога». Это потому, что ссылка не имеет собственного содержимого.

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

find /home/james -xtype l 

Это перечислит все неработающие символические ссылки в jamesкаталоге - от файлов до каталогов и подкаталогов.

Передача -deleteопции удалит их так:

find /home/james -xtype l -delete 

Подведение итогов

Символические ссылки - интересная особенность систем Linux и UNIX.

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