¿Existe un manual o una guía para el uso de todos los directorios integrados? Me gusta lo que es / home /, o / net /?
Eche un vistazo a la Guía de programación del sistema de archivos para obtener la información más actualizada y en man hier
en la Terminal, que proporciona un" bosquejo histórico "de la jerarquía del sistema de archivos (se incluye al final de este respuesta para la referencia).
Un comentario a su pregunta menciona el Estándar de jerarquía del sistema de archivos . Probablemente llegará a la conclusión, después de leer Guía de programación del sistema de archivos y man hier
, que macOS no sigue la FHS , eso es más de una cosa de Linux. Por supuesto, hay 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 notables. macOS no utiliza ninguno de estos:
-
Carpeta
/boot
- > macOS usa /System/Library/Kernels
en su lugar (en versiones anteriores de macOS, la carpeta que contiene el kernel era /
)
-
Carpeta
/home
- > macOS usa /Users
en su lugar
-
Carpeta
/root
- > macOS usa /var/root
en su lugar
y /opt
no se mencionan ni una sola vez en ningún documento (más información sobre /opt
a continuación).
Otra distinción entre macOS y un sistema operativo compatible con FHS es el uso de /private
, por ejemplo, /etc
es un enlace simbólico a /private/etc
.
Acerca de /net
: es un mapa de montaje automático (listado en /etc/auto_master
), vea Wikipedia para más información.
¿Qué hace y debería entrar en / opt / y qué debería / entra en / usr /? Mi entendimiento es que / usr / solía ser para los directorios de inicio del usuario, pero dado que existe en / Usuarios / - ¿cuál es el propósito ahora?
Aunque /usr
se usó en el pasado para colocar los directorios principales de los usuarios , ese ya no es el caso.
Hoy en día, /usr
contiene comandos de usuario (en /usr/bin
para usuarios normales y /usr/sbin
para usuarios administrativos, como root
), bibliotecas compartidas ( /usr/lib
), páginas man ( /usr/share/man
), ejecutables eso no debería ser ejecutado directamente por los usuarios ( /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 una función muy similar a /usr/local
y parecen intercambiables. Sin embargo, según mi experiencia al trabajar con otros administradores de sistemas Linux / UNIX, parece haber una preferencia para /usr/local
en sistemas operativos UNIX basados en BSD.
Así que esta es mi opinión: macOS está basado en BSD y, por lo tanto, usaría /usr/local
. Tenga en cuenta que puede crear un directorio de programas 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 FHS explícitamente lo prohibe it: si desea instalar paquetes de terceros en su propia jerarquía de directorios, debe usar /opt/<package>
en su lugar. Tenga en cuenta que el cumplimiento con FHS requiere poner los archivos de configuración en /etc/opt/<package>
y los archivos variables en /var/opt/<package>
.
Por lo tanto, en macOS, te recomiendo que te mantengas en /usr/local
como se describe anteriormente.
Estoy al tanto de software complementario como Cisco VPN y XQuartz que se instala en /opt
, por lo que Las distinciones anteriores comienzan a borrarse.
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