Каковы типичные виды использования жестких ссылок?

Каждый, кто привык к Windows, может представить, что такое символические ссылки и как они используются. С другой стороны, концепция жестких ссылок чужды Windows (я прав?).

Я хотел бы знать, каковы типичные способы использования жестких ссылок в Linux. Я уже видел разные посты, описывающие разницу в том, как они работают. Я спрашиваю, в каких типичных ситуациях пользователю было бы лучше использовать жесткие ссылки вместо символических?

9
задан 6 December 2012 в 17:16

2 ответа

Я использую жесткую ссылку, где мне нужен один файл в двух или более местах, я предсказываю, что однажды я захочу удалить одно из мест, и я могу забыть, что у меня есть ссылка на файл. Это мешает мне получить символическую ссылку на файл, который больше не существует.

Пояснение:

Имя файла, по сути, является жесткой ссылкой на файл. Таким образом, у каждого файла есть хотя бы одна жесткая ссылка, которую мы обычно называем «именем» файла. Когда вы удаляете файл, фактически вы удаляете его жесткую ссылку (отсюда и название «удалить», т.е. rm, а не «удалить»). Когда у файла удалена последняя жесткая ссылка, система также удаляет файл.

0
ответ дан 6 December 2012 в 17:16

Жесткие ссылки позволяют ...

  • одному исполняемому файлу иметь более одного имени.

    Пример:

    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

Причина, по которой здесь работают жесткие ссылки (а мягкие нет): удаление только одной из жестких ссылок не приводит к удалению самого файла.

0
ответ дан 6 December 2012 в 17:16

Другие вопросы по тегам:

Похожие вопросы: