[ Пред. ] [ Содержание ] [ След. ]

hardlink

[ @debian @hardlink ]

 


hardlink — имя файла, ссылка на inode файла.


При редактировании хардлинка происходит редактирование оригинального файла, на который ссылается хардлинк.


Хардлинк характерен тем, что при удалении хардлинка оригинальный файл тоже удаляется. Но не всегда. См. теорию Software:Симлинки и хардлинки


Важно помнить:



И см. symlink


Создать и переименовать хардлинк одной командой


ln /home/mySettings/myScripts/debian/debian_update_and_upgrade.sh ~/.local/bin/updeb


В каталоге ~/.local/bin/ появится новый файл с названием “debup”.


Почему “debup”? Как захотел, так и назвал. Если бы не прописал ему название, то появился бы файл ~debian_update_and_upgrade.sh


Почему он отображается с тильдой? Потому что это не сам файл, а симлинк на файл.


Проверить хардлинк


через ls


И параметр -l (long format)


ls -l test.txt


Ожидаем ответ такого вида:


-rw-r--r-- 2 astenix astenix 87 окт 26 21:12 test.txt


Собственно, это атрибуты оригинального файла.


Можно узнать сразу и если файл — симлинк, и если да, то узнать inode, на который он указывает


ls -li test.txt


Можно получить информацию сразу о нескольких файлах


ls -li test.txt test2.txt


И если в ответе видно, что оба файла указывают на один и тот же inode, то перед нами — хардлинки.


через file


file test.txt


Ответ:


test.txt: Unicode text, UTF-8 text


Если бы файл был симлинком, ответ был бы такой:


test.txt: symbolic link to /home/AppImages/test.txt


через readlink


readlink test.txt


Если это хардлинк, в ответ будет полная тишина (словно ничего не произошло).


И если проверяемый файл не существует, в ответ тоже вернется тишина, поэтому данный способ проверки мало кто использует. Есть возможность вызывать команду с параметром -v, но проще забить.


Если это симлинк, в ответ должен вернуться путь на оригинал:


/home/AppImages/test.txt