O Padrão de hierarquia do sistema de arquivos especifica where as distribuições Linux devem colocar arquivos .
Os diretórios
bin
contêm executáveis destinados a serem usados por qualquer usuário, enquanto os diretórios sbin
contêm executáveis destinados a serem usados apenas pelo administrador do sistema. Os diretórios sbin
são normalmente apenas em $PATH
da raiz.
/bin
(e /sbin
) contêm programas que são necessários no início do processo de inicialização, porque /usr
pode ser montado em uma partição separada (mesmo que isso seja raro agora).
/usr/bin
(e /usr/sbin
) contêm programas fornecidos pela distribuição e que não estão em /bin
ou /sbin
. Em um sistema típico, a grande maioria dos executáveis está em /usr/bin
.
A hierarquia /usr/local
é o domínio do administrador. Os diretórios /lib
, /bin
, /sbin
e /usr
são normalmente reservados para a distribuição e geralmente contêm apenas arquivos fornecidos pelo gerenciador de pacotes do sistema. /usr/local
(e, em particular, /usr/local/bin
e /usr/local/sbin
) são intocados pelo gerenciador de pacotes, portanto, é nesse local que o administrador local pode colocar os executáveis instalados manualmente.
/usr/games
pode conter executáveis fornecidos pela distribuição e considerados puramente recreativos. É em grande parte uma sobrevivência histórica (há muito tempo atrás, /usr/games
podia estar fora dos limites em determinados momentos do dia, mas esse tipo de prática - que era fácil de se trabalhar de qualquer maneira - já havia diminuído).
Outros locais executáveis comuns no sistema Linux incluem:
-
/usr/X11R6/bin
ou /usr/bin/X11
para programas X. A prática de separar programas X de programas não-X diminuiu; hoje em dia todos vivem em /usr/bin
.
-
/usr/bin/mh
para executáveis do cliente de e-mail MH , que manipula e-mails por meio de comandos de shell de finalidade única ( show
para exibir uma mensagem, forw
para encaminhar um e-mail,…) Somente usuários de MH colocariam /usr/bin/mh
em seus $PATH
.
-
/opt/bin
, se existir, conteria links simbólicos para aplicativos instalados em /opt
.
As regras para o Linux são inspiradas por diretrizes gerais seguidas pela maioria dos sistemas unix, mas cada variante do unix tem suas próprias peculiaridades. Por exemplo:
- Em * BSD,
/
e /usr
contêm apenas o núcleo da distribuição: serviços e aplicativos básicos que são mantidos diretamente pelos mantenedores da distribuição. Programas de terceiros (“pacotes” ou “portas”) são instalados em /usr/local
, mesmo que sejam gerenciados por um gerenciador de pacotes. Não há local separado comumente aceito para programas fornecidos pelo administrador do sistema.
- Alguns sistemas unix não têm o diretório
/bin
, é um link simbólico para /sbin
ou /usr/bin
.
- Alguns sistemas podem ter diretórios extras contendo o pacote opcional, cada um deles colocando seu próprio diretório
bin
no $PATH
.
- Alguns sistemas podem ter diretórios extras que podem ou não ser colocados no
$PATH
dependendo do que o ambiente de execução deve ser compatível, por exemplo, /usr/bin/posix
ou /usr/xpg4/bin
ou /usr/xpg6/bin
para compatibilidade com POSIX / Único Unix, ou /usr/ucb
para compatibilidade com sistemas legados BSD.