Это отдельный объект файловой системы имеющий свою отдельную inode но по факту ссылающийся на inode другого файла или каталога. А вот hardlinks, это частный случай файла. То-есть айнода может быть одна, а вот объектов с этой айнодой может быть много. Короче. Есть у тебя файл, если ты создашь на него симлинк, а потом удалишь файл, то при попытке открыть содержимое через симлинк, система ругнётся ибо файл на который ссылается симлинк удалили (это как ярлыки в винде). А вот если ты создашь хардлинк, а потом удалишь файл, то файл никуда не денется, просто счётчик хардлинков уменьшится на единичку, а к содержимому ты всё так-же сможешь обратиться через хардлинк. Короче файл удалится только тогда когда сётчик хардлинков станет нулём. По понятным причинам симлинки могут ссылаться на объекты в другой ФС, а хардлинки действуют исключительно в пределах одной ФС. То-есть если у тебя например /home
на отдельном разделе, то ты прекрасно можешь создавать в нём симлинки откуда-нить из /usr/bin
, а вот хардлинки тебе оттуда создать не удастся.
Круто! Буду извращаться и мучать эти штуки