Che cosa? no /bin/
non è un collegamento simbolico a /usr/bin
su qualsiasi sistema conforme FHS. Nota che ci sono ancora Unix e Linux popolari che lo ignorano, ad esempio /bin
e /sbin
sono collegati simbolicamente a /usr/bin
su Arch Linux (il ragionamento è che non hai bisogno di /bin
per rescue/single-user-mode, dato che avvieresti solo un live CD).
/bin
contiene comandi che possono essere utilizzati sia dall'amministratore di sistema che dagli utenti, ma che sono richiesti quando non sono montati altri filesystem (ad es. in modalità utente singolo). Può anche contenere comandi che sono usati indirettamente dagli script
/usr/bin/
Questa è la directory principale dei comandi eseguibili sul sistema.
essenzialmente, /bin
contiene eseguibili richiesti dal sistema per riparazioni di emergenza, avvio e modalità utente singolo. /usr/bin
contiene tutti i file binari che non sono richiesti.
Noterò che possono trovarsi su dischi/partizioni separati, /bin
deve trovarsi sullo stesso disco di /
. /usr/bin
può trovarsi su un altro disco, anche se nota che questa configurazione è stata danneggiata per un po' (questo è il motivo per cui, ad esempio, systemd avverte di questa configurazione all'avvio).
Per correttezza, alcuni unix potrebbero ignorare FHS, poiché credo che sia solo uno standard Linux, non sono a conoscenza del fatto che sia stato ancora incluso in SUS, Posix o qualsiasi altro standard UNIX, sebbene dovrebbe essere IMHO. Fa comunque parte dello standard LSB.
Aggiornamento:per un po' di storia e il vero motivo per cui c'è /usr
, leggi questo:http://lists.busybox.net/pipermail/busybox/2010-December/074114.html. Anche questo.
/sbin
- Binari necessari per l'avvio, la riparazione del sistema di basso livello o la manutenzione (livello di esecuzione 1 o S)
/bin
- Binari necessari per il funzionamento normale/standard del sistema a qualsiasi livello di esecuzione.
/usr/bin
- Binari dell'applicazione/distribuzione pensati per l'accesso da parte di utenti che hanno effettuato l'accesso locale
/usr/sbin
- Binari di applicazioni/distribuzioni che supportano o configurano elementi in /sbin.
/usr/share/bin
- File binari o script di applicazioni/distribuzioni destinati a essere accessibili tramite Web, ad esempio applicazioni Web Apache
*local*
- Binari che non fanno parte di una distribuzione; compilato localmente o installato manualmente. Di solito non c'è mai un /local/bin
ma sempre un /usr/local/bin
e /usr/local/share/bin
.
Una sorta di "aggiornamento" su questo problema:
Recentemente alcune distribuzioni Linux stanno unendo /bin
in /usr/bin
e corrispondentemente /lib
in /usr/lib
. A volte anche (/usr)/sbin
a /usr/bin
(Arch Linux).Quindi /usr
dovrebbe essere disponibile contemporaneamente a /
.
La distinzione tra le due gerarchie ora è considerata una complessità inutile. Una volta l'idea era di avere solo /bin
disponibile all'avvio, ma avere un ramdisk iniziale lo rende obsoleto.
So che Fedora Linux (2011) e Arch Linux (2012) vanno in questa direzione e Solaris lo fa da molto tempo (> 15 anni).
- freedesktop:TheCaseForTheUsrMerge
- fedora:funzione UsrMove
- archivia:unisci /bin, /sbin, /lib in /usr/bin e /usr/lib