Existe um manual ou guia para o que todos os diretórios internos devem ser usados? Como o que é / home / ou / net /?
Dê uma olhada no Guia de programação do sistema de arquivos para obter as informações mais atualizadas e no man hier
Terminal, que fornece um "esboço histórico" da hierarquia do sistema de arquivos (incluído no final desta resposta para referência).
Um comentário à sua pergunta menciona o padrão de hierarquia do sistema de arquivos . Você provavelmente chegará à conclusão, depois de ler atentamente o Guia de programação do sistema de arquivos e man hier
que o macOS não segue o FHS , isso é algo mais do Linux. Obviamente, existem semelhanças entre o FHS e o layout do sistema de arquivos no macOS por causa da origem comum do UNIX, mas as diferenças são impressionantes. O macOS não usa nada disso:
/boot
pasta -> usado pelo macOS /System/Library/Kernels
(nas versões anteriores do macOS, a pasta que continha o kernel era /
)
/home
pasta -> o macOS usa em /Users
vez disso
/root
pasta -> o macOS usa em /var/root
vez disso
e /opt
não é mencionado nem uma vez em nenhum documento (mais /opt
abaixo).
Uma outra distinção entre o macOS e um sistema operacional compatível com FHS é o uso de /private
, por exemplo, /etc
um link simbólico para /private/etc
.
Sobre /net
: É um mapa de montador automático (listado em /etc/auto_master
), consulte a Wikipedia para obter mais informações.
O que entra e deve entrar em / opt / e o que deve / entra em / usr /? Meu entendimento é que / usr / costumava ser para diretórios pessoais de usuários, mas como isso existe em / Users / - qual é o objetivo agora?
Embora tenha /usr
sido usado no passado para colocar os diretórios pessoais dos usuários , esse não é mais o caso.
Atualmente, /usr
contém comandos de usuário ( /usr/bin
para usuários normais e usuários /usr/sbin
administrativos, como root
), bibliotecas compartilhadas ( /usr/lib
), páginas de manual ( /usr/share/man
), executáveis que não devem ser executados diretamente por usuários ( /usr/libexec
) e outras coisas.
Ele também oferece um subdiretório,, /usr/local
para colocar programas, bibliotecas e outros arquivos que não acompanham o sistema operacional base.
/opt
tem um papel muito semelhante /usr/local
e parece intercambiável. No entanto, da minha experiência trabalhando com outros administradores de sistema Linux / UNIX, parece haver uma preferência por /usr/local
sistemas operacionais UNIX baseados em BSD.
Portanto, esta é a minha opinião: o macOS é baseado em BSD e, consequentemente, eu usaria /usr/local
. Observe que você pode criar um diretório de programa e, em seguida, fazer o link simbólico de comandos para /usr/local/bin
etc, por exemplo:
/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
Isso também costumava ser uma prática comum no Linux e UNIX, mas o FHS proíbe explicitamente : se você deseja instalar pacotes de terceiros em sua própria hierarquia de diretórios, você deve usá-lo /opt/<package>
. Observe que a conformidade com a FHS requer a inserção de arquivos de configuração /etc/opt/<package>
e arquivos variáveis /var/opt/<package>
.
Portanto, no macOS, recomendo que você atenha /usr/local
como descrito acima.
Estou ciente de softwares complementares como Cisco VPN e XQuartz que são instalados /opt
, portanto as distinções acima começam a ficar tremidas.
man hier
Como mencionado acima, isso é 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