Символические ссылки
Символические ссылки более всего похожи на обычные ярлыки. Они
содержат адрес нужного файла в вашей файловой системе. Когда вы
пытаетесь открыть такую ссылку, то открывается целевой файл или папка.
Главное ее отличие от жестких ссылок в том, что при удалении целевого
файла ссылка останется, но она будет указывать в никуда, поскольку файла
на самом деле больше нет.
Вот основные особенности символических ссылок:
- Могут ссылаться на файлы и каталоги;
- После удаления, перемещения или переименования файла становятся недействительными;
- Права доступа и номер inode отличаются от исходного файла;
- При изменении прав доступа для исходного файла, права на ссылку останутся неизменными;
- Можно ссылаться на другие разделы диска;
- Содержат только имя файла, а не его содержимое.
Способ создания: ln -s file link_name
Жёсткие ссылки
Этот тип ссылок реализован на более низком уровне файловой системы.
Файл размещен только в определенном месте жесткого диска. Но на это
место могут ссылаться несколько ссылок из файловой системы. Каждая из
ссылок — это отдельный файл, но ведут они к одному участку жесткого
диска. Файл можно перемещать между каталогами, и все ссылки останутся
рабочими, поскольку для них неважно имя. Рассмотрим особенности:
- Работают только в пределах одной файловой системы;
- Нельзя ссылаться на каталоги;
- Имеют ту же информацию inode и набор разрешений что и у исходного файла;
- Разрешения на ссылку изменяться при изменении разрешений файла;
- Можно перемещать и переименовывать и даже удалять файл без вреда ссылке.
Способ создания: ln file link_name
Почему нельзя создавать жёсткую ссылку на директорию?
- Потому что тогда будет существовать возможность зацикливания файловой систему (ребёнок сможет ссылаться на родителя) т к нет разницы между обычным файлом и жёсткой ссылкой.
Проверить наличие жёсткой ссылки ls -i
: (инод - файл)
The maximum number of hard links to a single file is limited by the size
of the reference counter. On Unix-like systems the counter is usually
machine-word-sized (32- or 64-bit: 4,294,967,295 or
18,446,744,073,709,551,615 links, respectively), though in some
filesystems the number of hard links is limited more strictly by their
on-disk format. As of Linux 3.11, the ext4 filesystem limits the number of hard links on a file to 65,000. Windows with NTFS filesystem has a limit of 1024 hard links on a file