Capisco la differenza tecnica tra symlink e hardlink, questa è una domanda sul loro uso in pratica, in particolare sono curioso di sapere perché entrambi sono usati in condizioni apparentemente simili: la /bin
directory.
Ecco un frammento del suo elenco sul mio sistema:
~$ 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
Ho indentato i hardlink sullo stesso inode per una migliore visibilità. Così sono i collegamenti simbolici utilizzati in caso di bzcmp
, bzegrep
, bzfgrep
, bzless
e collegamenti fisici in caso di bzip2
, bzcat
, bunzip2
?
Sono tutti file regolari (non directory), risiedono all'interno di un file system, sono utilità di sistema e sono persino creati per lavorare con la stessa cosa: archivi bzip. I motivi per l'uso di hardlink / symlink in questo caso particolare sono puramente storici o mi sto perdendo qualcosa?
Chiarimento della mia domanda:
Sto Non chiedendo:
- Le differenze tecniche tra symlink e hardlink
- I vantaggi e gli svantaggi teorici di ciascuno di essi
Queste domande sono state affrontate in altri thread su SO. Sto cercando di capire perché sono state prese diverse decisioni in un caso specifico: per un gruppo di utilità di sistema correlate. Tecnicamente, avrebbero potuto essere tutti collegamenti simbolici o tutti potevano essere collegamenti fissi, entrambe le opzioni avrebbero funzionato (e in entrambi i casi un programma può ancora capire come è stato invocato tramite argv[0]
). Voglio capire l'intento qui se ce n'è.
Relazionato:
/bin
terza colonna dils -lai
è sempre1
quindi sembra usare solo collegamenti soft. Quale distro usi?