¿Por qué hay tantos lugares para poner un binario en Linux? Hay al menos estos cinco:
/bin//sbin//usr/bin//usr/local/bin//usr/local/sbin/
Y en mi apartado de oficina, no tengo permisos de escritura para algunos de estos.
¿Qué tipo de binario entra en cuál de estos bins?
filesystems
binary
Lazer
fuente
fuente

/usr/sbin/.~/bin/para cosas personales./binse fusionó con/usr/biny/sbinse fusionó con/usr/sbin- vea The Case for the / usr Merge ./usr/local/bin?Respuestas:
/bin(y/sbin) estaban destinados a programas que debían estar en una/partición pequeña antes de que/usrse montaran las particiones más grandes , etc. En la actualidad, sirve principalmente como una ubicación estándar para programas clave como/bin/sh, aunque la intención original aún puede ser relevante, por ejemplo, para instalaciones en pequeños dispositivos integrados./sbin, a diferencia de/bin, es para los programas de administración del sistema (que normalmente no usan los usuarios comunes) necesarios antes de/usrmontarlos./usr/bines para programas de usuario normal gestionados por distribución.Hay una
/usr/sbincon la misma relación/usr/binque/sbintiene que/bin./usr/local/bines para programas de usuario normales no administrados por el administrador de paquetes de distribución, por ejemplo, paquetes compilados localmente. No debe instalarlos/usr/binporque las futuras actualizaciones de distribución pueden modificarlos o eliminarlos sin previo aviso./usr/local/sbin, como probablemente puedas adivinar en este momento, es/usr/local/bincomo/usr/sbinhacerlo/usr/bin.Además, también
/opthay opciones para paquetes monolíticos sin distribución, aunque antes de que se integraran adecuadamente, varias distribuciones pusieron allí a Gnome y KDE. En general, debe reservarlo para paquetes de terceros grandes y de mal comportamiento, como Oracle.fuente
~/biny agregue ese directorio a su RUTA como usuario ... Gracias por la nota, eliminé mi comentario seriamente desactualizado.PATHvariable del sistema , yecho $PATHpara mí muestra/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games, lo que significa que los ejecutables/usr/local/bintienen prioridad sobre los/usr/binque tienen prioridad sobre los que están en/bin.Recomiendo echar un vistazo a la página del manual de jerarquía del sistema de archivos:
Que también está disponible en línea, por ejemplo: http://linux.die.net/man/7/hier
fuente
La entrada Estándar de jerarquía del sistema de archivos en Wikipedia me ayudó a responder la misma pregunta cuando la tuve, además tiene una tabla muy explicativa.
Extracto de esa página 1 :
1 Recuperado el 19 de junio de 2019; Enlace permanente .
fuente
Los
sbindirectorios contienen programas que generalmente son solo de administración del sistema. Los programas para usuarios habituales nunca deberían entrar en ellos.Se necesitan algunos programas durante el inicio y terminan en
/bin/o/sbin/. Deben estar disponibles antes de montar los sistemas de archivos. Cosas comomountyfsckque se requieren para verificar y montar sistemas de archivos deben estar allí.La mayoría de los programas empaquetados terminan en
/usr/bin/y/usr/sbin/. Estos pueden estar en un sistema de archivos que no sea el sistema de archivos raíz. En algunos casos, pueden estar en una unidad montada en red.Programas locales y scripts pertenecen a
/usr/local/bin/y/usr/local/sbin/. Esto los identifica como claramente no estándar, y posiblemente solo disponibles en el sitio.Para obtener más información, intente ejecutar el comando
man hierque debe proporcionar una descripción de la jerarquía del sistema de archivos recomendada para su distribución. Es posible que también desee leer sobre la Jerarquía del sistema de archivos en Wikipediafuente
En la década de 1970,
UNIXtenía todos los ejecutables oficiales/biny/usr/binestaba debajo de los directorios de inicio de los usuarios (por ejemplo/usr/dmr), que estaba disponible para que cualquier usuario almacenara sus propios archivos binarios que también podrían haber sido de interés para otros.El resultado de esta apertura
/usr/binfue un depósito de basura de software indocumentado y, por lo tanto,Stephen Bourneescribió uncron scriptque buscaba nuevos archivos binarios todas las noches y eliminaba todos los archivos binarios que no tenían documentación o que se habían actualizado sin actualizar su documentación también.A fines de la década de 1970,
/usr/binse integró en la distribución base del sistema operativo y la gente comenzó a usar/usr/local/binpara el propósito de la apertura anterior/usr/bin.Después de un tiempo, los administradores de sistemas solían
/usr/local/binalmacenarnon-localsoftware importado de la red (por ejemplo, USENET) y, como las empresas de UNIX no querían repetir el mismo error que antes/usr/bin, hubo una conferencia sobre la jerarquía del sistema de archivos alrededor de 1987 donde todas las empresas de UNIX acordaron renunciar/usr/local/biny usar/opt/<vendor>/binen su lugar.Desafortunadamente, las distribuciones de Linux no siguieron esta decisión ...
fuente
/opttrataba sobre UNIX y no sobre UNIX sino sobre Linux. Esto es como responder "¿Por qué los automóviles tienen 4 ruedas?" con "¡Las bicicletas tienen 2! Lamentablemente, los autos no". lo que no ayuda al OP a entender por qué los automóviles tienen 4.