Viniendo del mundo de Windows, he encontrado que la mayoría de los nombres de directorio de carpetas son bastante intuitivos:
\Program Files
contiene archivos usados por programas (¡sorpresa!)\Program Files (x86)
contiene archivos utilizados por programas de 32 bits en sistemas operativos de 64 bits\Users
(anteriormenteDocuments and Settings
) contiene los archivos de los usuarios, es decir, documentos y configuraciones\Users\USER\Application Data
contiene datos específicos de la aplicación\Users\USER\Documents
contiene documentos que pertenecen al usuario
\Windows
contiene archivos que pertenecen al funcionamiento de Windows mismo\Windows\Fonts
almacena archivos de fuentes (¡sorpresa!)\Windows\Temp
es un directorio temporal global
etcétera. Incluso si no tuviera idea de lo que hicieron estas carpetas, podría adivinar con buena precisión sus nombres.
Ahora estoy echando un buen vistazo a Linux, y me estoy confundiendo bastante sobre cómo encontrar mi camino en el sistema de archivos.
Por ejemplo:
/bin
Contiene binarios. Pero también lo hacen/sbin
,/usr/bin
,/usr/sbin
, y probablemente más que yo no conozco. ¿¿Cual es cual?? ¿Cuál es la diferencia entre ellos? Si quiero hacer un binario y ponerlo en algún lugar de todo el sistema, ¿dónde lo pongo?/media
contiene sistemas de archivos de medios externos. Pero también lo hace/mnt
. Y ninguno de ellos contiene nada en mi sistema en este momento; todo parece estar adentro/dev
. ¿Cual es la diferencia? ¿Dónde están las otras particiones en mi disco duro, como elC:
yD:
que estaban en Windows?/home
contiene los archivos y configuraciones del usuario. Eso es intuitivo, pero entonces, ¿en qué se supone que debe entrar/usr
? ¿Y cómo/root
es que todavía está separado, a pesar de que es un usuario con archivos y configuraciones?/lib
contiene bibliotecas compartidas, como archivos DLL. Pero también lo hace/usr/lib
. ¿Cual es la diferencia?¿Qué es
/etc
? ¿Realmente significa "etcétera" u otra cosa? ¿Qué tipos de archivos deberían ir allí, globales o locales? ¿Es una trampa para todo lo que nadie sabía dónde poner, o hay un caso de uso particular para ello?¿Cuáles son
/opt
,/proc
y/var
? ¿Qué representan y para qué sirven? No he visto nada parecido en Windows *, y no puedo entender para qué podrían ser.
Si alguien puede pensar en otros lugares estándar que puedan ser buenos para conocer, siéntase libre de agregarlo a la pregunta; Con suerte, esto puede ser una buena referencia para personas como yo, que están comenzando a familiarizarse con los sistemas * nix.
* OK, eso es mentira. He visto cosas similares en WinObj, pero obviamente no de manera regular. Sin embargo, todavía no sé qué hacen en Linux.
C:\Program Files
, C:\ProgramData
, %HOME%\AppData\Local
, %HOME%\AppData\LocalLow
, C:\Windows\SystemApps
... Todos los ejemplos en los que se pueden encontrar en los ejecutables de Windows. Y ni siquiera hablaré sobre los archivos de configuración y el registro, no quiero deprimirme aún más. PD: trabajo principalmente en Windows.