Каждый, кто привык к Windows, может представить, что такое символические ссылки и как они используются. С другой стороны, концепция жестких ссылок чужды Windows (я прав?).
Я хотел бы знать, каковы типичные способы использования жестких ссылок в Linux. Я уже видел разные посты, описывающие разницу в том, как они работают. Я спрашиваю, в каких типичных ситуациях пользователю было бы лучше использовать жесткие ссылки вместо символических?
Я использую жесткую ссылку, где мне нужен один файл в двух или более местах, я предсказываю, что однажды я захочу удалить одно из мест, и я могу забыть, что у меня есть ссылка на файл. Это мешает мне получить символическую ссылку на файл, который больше не существует.
Пояснение:
Имя файла, по сути, является жесткой ссылкой на файл. Таким образом, у каждого файла есть хотя бы одна жесткая ссылка, которую мы обычно называем «именем» файла. Когда вы удаляете файл, фактически вы удаляете его жесткую ссылку (отсюда и название «удалить», т.е. rm
, а не «удалить»). Когда у файла удалена последняя жесткая ссылка, система также удаляет файл.
Жесткие ссылки позволяют ...
одному исполняемому файлу иметь более одного имени.
Пример:
ls -l /bin | grep -v ' 1 ' | sort
перечислит те из них в /bin
для вас. Результат ...
-rwxr-xr-x 2 root root 63 2010-01-19 21:49 gunzip
-rwxr-xr-x 2 root root 63 2010-01-19 21:49 uncompress
-rwxr-xr-x 3 root root 26300 2011-12-12 22:40 bunzip2
-rwxr-xr-x 3 root root 26300 2011-12-12 22:40 bzcat
-rwxr-xr-x 3 root root 26300 2011-12-12 22:40 bzip2
Вместо 3 файлов bunzip2 bzcat и bzip2 используют один и тот же файл, и внутри файла делается различие в том, что делать. Сохраняет код и меньше кода означает меньше возможных ошибок и более простое обслуживание.
один файл должен быть доступен по нескольким путям.
Возьмем, к примеру, менеджер пакетов, который создает каталог / usr / share / doc / $ packagename для каждого установленного пакета, и внутри этого каталога файл с именем LICENSE с информацией о лицензии пакета. Многие пакеты в типичной системе Linux имеют лицензию GPL, поэтому вместо 200 копий GPL в файловой системе может быть только одна копия и 199 ссылок. ptman @ Serverfault
Причина, по которой здесь работают жесткие ссылки (а мягкие нет): удаление только одной из жестких ссылок не приводит к удалению самого файла.