Vindo do mundo Windows, achei a maioria dos nomes de diretório de pastas bastante intuitivos:
\Program Files
contém arquivos usados por programas (surpresa!)\Program Files (x86)
contém arquivos usados por programas de 32 bits em sistemas operacionais de 64 bits\Users
(anteriormenteDocuments and Settings
) contém os arquivos dos usuários, como documentos e configurações\Users\USER\Application Data
contém dados específicos do aplicativo\Users\USER\Documents
contém documentos pertencentes ao usuário
\Windows
contém arquivos que pertencem à operação do próprio Windows\Windows\Fonts
armazena arquivos de fonte (surpresa!)\Windows\Temp
é um diretório temporário global
et cetera. Mesmo se eu não tivesse idéia do que essas pastas faziam, eu poderia adivinhar com boa precisão seus nomes.
Agora, estou dando uma boa olhada no Linux e ficando bastante confuso sobre como encontrar o meu caminho no sistema de arquivos.
Por exemplo:
/bin
contém binários. Mas assim como/sbin
,/usr/bin
,/usr/sbin
, e provavelmente mais que eu não sei sobre. Qual e qual?? Qual a diferença entre eles? Se eu quiser criar um binário e colocá-lo em algum lugar do sistema, onde eu o coloco?/media
contém sistemas de arquivos de mídia externos. Mas o mesmo acontece/mnt
. E nenhum deles contém nada no meu sistema no momento; tudo parece estar em/dev
. Qual é a diferença? Onde estão as outras partições no meu disco rígido, como oC:
eD:
que estavam no Windows?/home
contém os arquivos e configurações do usuário. Isso é intuitivo, mas, então, o que é suposto entrar/usr
? E por que/root
ainda está separado, mesmo que seja um usuário com arquivos e configurações?/lib
contém bibliotecas compartilhadas, como DLLs. Mas o mesmo acontece/usr/lib
. Qual é a diferença?O que é
/etc
? Realmente significa "et cetera", ou algo mais? Que tipos de arquivos devem aparecer lá - global ou local? É uma coisa fácil para as coisas que ninguém sabia onde colocar, ou existe um caso de uso específico para isso?Quais são
/opt
,/proc
e/var
? O que eles representam e para que são usados? Não vi nada parecido no Windows * e simplesmente não consigo descobrir para que servem.
Se alguém puder pensar em outros lugares padrão que possam ser bons para conhecer, fique à vontade para adicioná-lo à pergunta; espero que isso possa ser uma boa referência para pessoas como eu, que estão começando a se familiarizar com os sistemas * nix.
* OK, isso é mentira. Eu já vi coisas semelhantes no WinObj, mas obviamente não regularmente. Ainda não sei o que eles fazem no Linux.
C:\Program Files
, C:\ProgramData
, %HOME%\AppData\Local
, %HOME%\AppData\LocalLow
, C:\Windows\SystemApps
... Todos os exemplos onde se pode encontrar executáveis no Windows. E nem vou falar sobre arquivos de configuração e registro, não quero ficar ainda mais deprimido. PS: Eu trabalho principalmente no Windows.