¿Existe un manual o guía sobre para qué se deben usar todos los directorios integrados? ¿Qué es / home / o / net /?
Consulte la Guía de programación del sistema de archivos para obtener la información más actualizada y man hier
en la Terminal, que proporciona un "bosquejo histórico" de la jerarquía del sistema de archivos (se incluye al final de esta respuesta como referencia).
Un comentario a su pregunta menciona el Estándar de Jerarquía del Sistema de Archivos . Probablemente llegarás a la conclusión, después de leer detenidamente la Guía de programación del sistema de archivos y man hier
, que macOS no sigue el FHS , eso es más una cosa de Linux. Por supuesto, existen similitudes entre el FHS y el diseño del sistema de archivos en macOS debido al origen común de UNIX, pero las diferencias son sorprendentes. macOS no usa ninguno de estos:
/boot
carpeta -> macOS usa en su /System/Library/Kernels
lugar (en versiones anteriores de macOS, la carpeta que contenía el núcleo era /
)
/home
carpeta -> macOS usa en su /Users
lugar
/root
carpeta -> macOS usa en su /var/root
lugar
y /opt
no se menciona ni una sola vez en ningún documento (más información a /opt
continuación).
Otra característica entre macOS y un sistema operativo compatible con FHS es el uso de /private
, por ejemplo, /etc
un enlace simbólico a /private/etc
.
Acerca de /net
: es un mapa de montadores automáticos (enumerado en /etc/auto_master
), consulte Wikipedia para obtener más información.
¿Qué entra y debe entrar en / opt / y qué debe / entra en / usr /? Tengo entendido que / usr / solía ser para directorios de inicio de usuarios, pero dado que eso existe en / Users /, ¿cuál es el propósito ahora?
Aunque /usr
se utilizó en el pasado para colocar los directorios principales de los usuarios , ya no es así.
Hoy en día, /usr
contiene comandos de usuario ( /usr/bin
para usuarios normales y /usr/sbin
para usuarios administrativos, como root
), bibliotecas compartidas ( /usr/lib
), páginas man ( /usr/share/man
), ejecutables que los usuarios no deberían ejecutar directamente ( /usr/libexec
) y otras cosas.
También ofrece un subdirectorio /usr/local
para colocar programas, bibliotecas y otros archivos que no vienen con el sistema operativo base.
/opt
tiene un papel muy similar /usr/local
y parecen intercambiables. Sin embargo, según mi experiencia trabajando con otros administradores de sistemas Linux / UNIX, parece haber una preferencia por los /usr/local
sistemas operativos UNIX basados en BSD.
Así que esta es mi opinión: macOS está basado en BSD y, en consecuencia, lo usaría /usr/local
. Tenga en cuenta que puede crear un directorio de programa y luego comandos de enlace simbólico a /usr/local/bin
, etc., por ejemplo:
/usr/local/mysql
/usr/local/mysql/bin/mysqladmin
/usr/local/mysql/lib/libmysqlclient.so
/usr/local/bin/mysqladmin -> ../mysql/bin/mysqladmin
/usr/local/lib/libmysqlclient.so -> ../mysql/lib/libmysqlclient.so
Esto solía ser una práctica habitual en Linux y UNIX también, pero el FHS lo prohíbe explícitamente : si desea instalar paquetes de terceros en su propia jerarquía de directorios, debe usarlos /opt/<package>
. Tenga en cuenta que el cumplimiento de FHS requiere colocar archivos de configuración /etc/opt/<package>
y archivos variables /var/opt/<package>
.
Entonces, en macOS, te recomiendo que te mantengas /usr/local
como se describe anteriormente.
Soy consciente del software adicional como Cisco VPN y XQuartz que se instalan /opt
, por lo que las distinciones anteriores comienzan a difuminarse.
man hier
Como se mencionó anteriormente, esto es man hier
:
A historical sketch of the filesystem hierarchy. The modern macOS filesystem is documented in the
``File System Programming Guide'' available on Apple Developer.
/ root directory of the filesystem
/bin/ user utilities fundamental to both single-user and multi-user environments
/dev/ block and character device files
fd/ file descriptor files; see fd(4)
/etc/ system configuration files and scripts
/mach_kernel kernel executable (the operating system loaded into memory at boot time).
/sbin/ system programs and administration utilities fundamental to both single-user and multi-
user environments
/tmp/ temporary files
/usr/ contains the majority of user utilities and applications
bin/ common utilities, programming tools, and applications
include/ standard C include files
arpa/ C include files for Internet service protocols
hfs/ C include files for HFS
machine/ machine specific C include files
net/ misc network C include files
netinet/ C include files for Internet standard protocols; see inet(4)
nfs/ C include files for NFS (Network File System)
objc/ C include files for Objective-C
protocols/ C include files for Berkeley service protocols
sys/ system C include files (kernel data structures)
ufs/ C include files for UFS
lib/ archive libraries
libexec/ system daemons & system utilities (executed by other programs)
local/ executables, libraries, etc. not included by the basic operating system
sbin/ system daemons & system utilities (executed by users)
share/ architecture-independent data files
calendar/ a variety of pre-fab calendar files; see calendar(1)
dict/ word lists; see look(1)
web2 words from Webster's 2nd International
words common words
man/ manual pages
misc/ misc system-wide ascii text files
mk/ templates for make; see make(1)
skel/ example . (dot) files for new accounts
tabset/ tab description files for a variety of terminals; used in the term-
cap file; see termcap(5)
zoneinfo/ timezone configuration information; see tzfile(5)
/var/ multi-purpose log, temporary, transient, and spool files
at/ timed command scheduling files; see at(1)
backups/ misc. backup files
db/ misc. automatically generated system-specific database files
log/ misc. system log files
mail/ user mailbox files
run/ system information files describing various info about system since it was
booted
utmpx database of current users; see utmpx(5)
rwho/ rwho data files; see rwhod(8), rwho(1), and ruptime(1)
spool/ misc. printer and mail system spooling directories
mqueue/ undelivered mail queue; see sendmail(8)
tmp/ temporary files that are kept between system reboots
folders/ per-user temporary files and caches