Есть два вида ссылок в Linuх: символические и жёсткие. Ссылки — это особенность файловой системы Linux, которая позволяет размещать один и тот же файл в нескольких директориях.
Типы ссылок сильно отличаются друг от друга и используются для разных целей.
Символическая ссылка
Содержит адрес нужного файла или директории в файловой системе. При клике открывается файл или директория, на которую ссылается ссылка. Если удалить файл, то ссылка останется, но будет указывать в никуда.
- Может ссылаться на файл и каталог.
- После удаления, перемещения или переименования файла ссылка становится недействительной.
- Ссылка имеет собственные права доступа и номер inode. При изменении прав доступа к целевому файлу права ссылки не меняются.
- Можно ссылаться на другие разделы диска.
- Содержат только имя файла или каталога, а не его содержимое.
Создать символическую ссылку можно командой:
ln -s /backup/source/ /opt/prog/mylink
Где /backup/source/ — папка, которая должна существовать и на которую нужно ссылаться.
А /opt/prog/mylink — создаваемая ссылка, не должна существовать на момент выполнения команды.
Жёсткая ссылка
Все жёсткие ссылки — это отдельные файлы, но ведут к одному участку жёсткого диска, где расположены данные файла. Файл можно перемещать между каталогами, все ссылки останутся рабочими.
- Работает только в пределах одной файловой системы.
- Нельзя ссылаться на каталоги.
- Ссылка имеет те же права доступа и номер inode, что и исходный файл. При изменении разрешений файла изменятся права ссылки.
- Можно перемещать и переименовывать и даже удалять файл без вреда для ссылки.
Создать жёсткую ссылку можно командой:
ln -P /backup/source/file1.txt /opt/prog/mylink/file2.txt
Где /backup/source/file1.txt - файл, на который нужно ссылаться.
А /opt/prog/mylink/file2.txt - создаваемая жёсткая ссылка, не должна существовать на момент выполнения команды.
В общем виде
ln опции файл_источник файл_ссылки
- -d разрешить создавать жесткие ссылки для директорий суперпользователю.
- -f удалять существующие ссылки.
- -i спрашивать нужно ли удалять существующие ссылки.
- -P создать жесткую ссылку.
- -r создать символическую ссылку с относительным путем к файлу.
- -s создать символическую ссылку.