Я понимаю техническое различие между символическими и жесткими ссылками, это вопрос об их использовании на практике, особенно мне интересно знать, почему оба они используются в, казалось бы, похожих условиях: /bin
каталог.
Вот фрагмент его списка в моей системе:
~$ ls -lai /bin
total 10508
32770 drwxr-xr-x 2 root root 4096 Jun 14 11:47 .
2 drwxr-xr-x 28 root root 4096 Sep 6 13:15 ..
119 -rwxr-xr-x 1 root root 959120 Mar 28 22:02 bash
2820 -rwxr-xr-x 3 root root 31112 Dec 15 2011 bunzip2
127 -rwxr-xr-x 1 root root 1832016 Nov 16 2012 busybox
2820 -rwxr-xr-x 3 root root 31112 Dec 15 2011 bzcat
6191 lrwxrwxrwx 1 root root 6 Dec 15 2011 bzcmp -> bzdiff
5640 -rwxr-xr-x 1 root root 2140 Dec 15 2011 bzdiff
5872 lrwxrwxrwx 1 root root 6 Dec 15 2011 bzegrep -> bzgrep
3520 -rwxr-xr-x 1 root root 4877 Dec 15 2011 bzexe
6184 lrwxrwxrwx 1 root root 6 Dec 15 2011 bzfgrep -> bzgrep
5397 -rwxr-xr-x 1 root root 3642 Dec 15 2011 bzgrep
2820 -rwxr-xr-x 3 root root 31112 Dec 15 2011 bzip2
2851 -rwxr-xr-x 1 root root 10336 Dec 15 2011 bzip2recover
6189 lrwxrwxrwx 1 root root 6 Dec 15 2011 bzless -> bzmore
5606 -rwxr-xr-x 1 root root 1297 Dec 15 2011 bzmore
Я выделил жесткие ссылки на тот же индекс для лучшей видимости. Так символические ссылки используются в случае bzcmp
, bzegrep
, bzfgrep
, bzless
и жестких ссылок в случае bzip2
, bzcat
, bunzip2
?
Все они являются обычными файлами (не каталогами), находятся внутри одной файловой системы, являются системными утилитами и даже созданы для работы с одной и той же вещью: архивами bzip. Являются ли причины использования жестких ссылок / символических ссылок в данном конкретном случае чисто историческими или я что-то упустил?
Уточнение моего вопроса:
Я не спрашиваю о:
- Технические различия между символическими и жесткими ссылками
- Теоретические преимущества и недостатки каждого из них
Эти вопросы были рассмотрены в других темах на SO. Я пытаюсь понять, почему разные решения были приняты в конкретном случае: для группы связанных системных утилит. Технически, все они могли быть символическими ссылками или жесткими ссылками, оба варианта работали бы (и в обоих случаях программа все еще может выяснить, как она вызывается через argv[0]
). Я хочу понять намерение здесь, если таковые имеются.
Связанные с:
/bin
третьем столбцеls -lai
всегда1
используется только мягкие ссылки. Какой дистрибутив вы используете?