¿Qué opinan sobre la estructura de archivos en Linux?

Algo que siempre me ha llamado la atención es la estructura de archivos de Linux, no es fácil de entender a la primera, y su lógica viene de sus predecesores UNIX.

La estructura Windows es legible, cualquier persona mirándola se puede dar cuenta de para qué sirve cada carpeta al menos, de hecho, en rigor no tiene una estructura compleja, las carpetas más importantes son sólo 2: /Windows/ (Donde funciona el sistema básicamente) y /Documents And Settings/ (Donde están los archivos de los usuarios) además de /Program Files/ también conocido en versiones castellanas de Windows como /Archivos de Programa/

Para entender dónde se encuentra esto mismo en Linux, debemos descifrar primero de dónde viene este formato de carpetas y qué significa cada una de ellas.

Primero hay que acotar que es un estándar, inventado en los inicios de GNU/Linux y adoptado luego como el estándar FHS que también se utiliza en algunos sistemas BSD (yo de BSD no sé prácticamente nada a la fecha de este artículo, sólo lo mínimo necesario por cultura general, así que puedo estar equivocado y si lo estoy, corríjame educadamente :P).

Ahora que sabemos de dónde salió esto, entendamos qué significa cada carpeta:

Las carpetas conocidas:

/mnt/ = Si usas Linux hace años, ubicas a /mnt/ pues era el punto de montaje de cualquier medio de almacenamiento extraíble hasta que fue reemplazado por /media/

/Home/ La carpeta equivalente a /Documents and Settings/ de Windows.

Ahora los que no conocemos tanto:

/bin/ El que contiene los ejecutables fundamentales, que vienen por defecto en Linux

/boot/ El lugar de los archivos de arranque, el lugar de Grub, por ejemplo.

/dev/ El lugar donde se encuentran los dispositivos de hardware, desde el teclado hasta los discos duros (No hay nada que tocar aquí)

/etc/ Este tarde o temprano lo vamos a conocer, es el lugar donde se almacenan los archivos de configuración, tanto de programas como del sistema mismo (como es el caso del rc.conf de Arch Linux)

/lib/ ¿Les suena? Las librerías claro.

/opt/ Aplicaciones (preferentemente aquellas que no dependen de nada más, de forma directa y que están en su propia carpeta como Mozilla Firefox por ejemplo)

/proc/ Es el log del kernel (qué entrete!)

/root/ El directorio del súperusuario

/sbin/ Los comandos que sólo puede ejecutar ‘root’

/tmp/ Para los archivos temporales

/usr/ UNIX System Resource (siempre pensé que era una abreviatura de ‘usuario’ xD) y almacena datos de programas y los programas mismos.

/var/ Archivos variables, es decir, archivos que pueden ir cambiando dinámicamente, incluído el servidor Apache.

¿Te parece aceptable este estándar o complica la curva de aprendizaje?


Categorías

Más Linux

edumix

Ingeniero Informático de Profesión y Desarrollador Web de vocación. Amante de las Nuevas Tecnologías e Internet. "Linux Adicto" y en contacto permanente con "La Nube".

24 comentarios

  1.   Tuxinga! dijo

    Hola, mi humilde opinión es que si GNU/Linux quiere entrar mas en el mercado de los Desktop va a tener que resolver esa maraña de directorios jejej.
    Yo no tengo problema, pero conozco gente que migra o que intenta usar GNU/Linux y esta estructura le es completamente inentendible. En esto windows lo hace mas sencillo, una para los archivos de los programas, otra para los usuarios y otra para el sistema en si (en donde también podrian estar los archivos de configuración de los programas).
    No conozco mucho trabaja la actual estructura ni como se articula con las aplicaciones ya existentes, pero me parece muy difícil que cambie prontamente.

  2.   Sergio Rondan dijo

    Me sorprendio lo de usr/ hasta el dia de hoy (y los dias q sigan) lo voy a llamar user :P
    Pero volviendo al tema, te dejo mis impresiones. A mi me parece espectacular la estructura de archivos. Por ejemplo,yo trabajo en la municipalidad de mi ciudad, en la parte de informatica y utilizamos Ubuntu para mas del 85% de las PCs. El resto usa windows por diferentes motivos: Ya sea por capricho jerarquico, o pq trabajan con sistemas propietarios como Autocad.
    Las maquinas con windows, son un dolor de huevo. Cuando llega una pc de windows a mi oficina y no me queda otra q instalar todo de cero, al momento de hacer el bkp me vuelvo loco. Tengo q andar rastreando los archivos por todo el disco rigido !
    En GNU/Linux no, todo va al /home (la mayoria). El resto de las carpetas creo q un usuario comun ni necesita saber para q son. Solo basta con tener tu /home con tu usuario y tus carpetas y listo. Cuando tengo q hacer un bkp de Ubuntu, copio todo el home y a la mierda :D
    Por eso creo q la estructura de archivos es excepcional. La de Windows esta mil años atrasada.

  3.   Senor Gato dijo

    Que es entrete?

  4.   Chuky394 dijo

    Me sorprendio lo de usr/ hasta el dia de hoy (y los dias q sigan) lo voy a llamar user :P
    Pero volviendo al tema, te dejo mis impresiones. A mi me parece espectacular la estructura de archivos. Por ejemplo,yo trabajo en la municipalidad de mi ciudad, en la parte de informatica y utilizamos Ubuntu para mas del 85% de las PCs. El resto usa windows por diferentes motivos: Ya sea por capricho jerarquico, o pq trabajan con sistemas propietarios como Autocad.
    Las maquinas con windows, son un dolor de huevo. Cuando llega una pc de windows a mi oficina y no me queda otra q instalar todo de cero, al momento de hacer el bkp me vuelvo loco. Tengo q andar rastreando los archivos por todo el disco rigido !
    En GNU/Linux no, todo va al /home (la mayoria). El resto de las carpetas creo q un usuario comun ni necesita saber para q son. Solo basta con tener tu /home con tu usuario y tus carpetas y listo. Cuando tengo q hacer un bkp de Ubuntu, copio todo el home y a la mierda :D
    Por eso creo q la estructura de archivos es excepcional. La de Windows esta mil años atrasada.

    También es bueno decir, ayudar mucho particionar el disco de manera que el /home, quedo solito en otra partición, así cuando debemos formatear y re instalar el sistema, no hay necesidad de backupear nada. 10gb para /; lo demás para el /home.

    Nos vemos :)

  5.   Psep dijo

    Ya los conocía :P
    al principio también pensaba que “/usr” era de usuario, hasta que en un par de años tuve que conocer las descripciones a la fuerza, en ese tiempo con el kernel de defecto en debian etch tuve problemas con el lector de CD, tuve que hacer modificaciones a algunos valores en /dev, para poder leerlos hasta que actualicé el kernel.

  6.   Darhac dijo

    Pues la verdad a mi en windows me da dolor de cabeza … a ver las actualizaciones donde se descargaron?? a si son estas carpetas AKJSDHAJSDHUW-09 mmm a ver por la fecha .. si aki estan las actualizaciones, digo para pasarlas a otra makina sin tener q conectarme al Internet. Pero en cambio voy a Ubuntu o Debian y a ver son archivos q cambian entonces estan en var , se los baja con el apt-get, entonces aqui esta la carpeta apt, a ya solo abro la carpeta cache, todos en .deb y listos para copiar e instalar.
    Ademas que en XP sea Docs & settings, luego lo pasen a Users en Vista y ahora sea User en 7, pues de pronto en la proxima version de guindous la carpeta se llame …. HOME jajajaja

  7.   Nitsuga dijo

    Es como casi todo en este SO, al princpio parecen jeroglíficos, imposibles de entender, pero cuando lo entiendes descubres que es la mejor manera posible de hacer eso. Por ejemplo: La idea de forzarte a tener /bin, /lib /sbin y /etc en la misma partición hace que puedas arrancar el sistema aunque todo salvo / falle.

    La idea de /usr/share también es fenomenal. ¡Podés tener una partición o servidor NFS para los programas aunque uses arquitecturas distintas en cada SO! En esta estructura de carpetas esta todo, TODO, pensado.

  8.   123 dijo

    Pues, como mencionan mas arriba para un usuario común, solo es necesario que conozca su directorio de usuario en /home y a lo sumo el directorio /media, que es en donde se montan los dispositivos extraíbles…

    Por otro lado la organización de los directorios en GNU/Linux esta estandarizada con lo que, aunque sea mas difícil aprenderla (que no lo creo), es mucho mas eficiente y ordenada… Sigue la filosofía de un lugar para cada cosa y cada cosa en su lugar.
    El que diga que la organización en Windows es mas simple…, es porque nunca a tratado de encontrar cosas en el directorio Windows, system32, etc… Si hasta hay casos en que podemos encontrarnos con una directorio Archivos de programa y otro Program Files.

  9.   Luis dijo
    Me sorprendio lo de usr/ hasta el dia de hoy (y los dias q sigan) lo voy a llamar user :P
    Pero volviendo al tema, te dejo mis impresiones. A mi me parece espectacular la estructura de archivos. Por ejemplo,yo trabajo en la municipalidad de mi ciudad, en la parte de informatica y utilizamos Ubuntu para mas del 85% de las PCs. El resto usa windows por diferentes motivos: Ya sea por capricho jerarquico, o pq trabajan con sistemas propietarios como Autocad.
    Las maquinas con windows, son un dolor de huevo. Cuando llega una pc de windows a mi oficina y no me queda otra q instalar todo de cero, al momento de hacer el bkp me vuelvo loco. Tengo q andar rastreando los archivos por todo el disco rigido !
    En GNU/Linux no, todo va al /home (la mayoria). El resto de las carpetas creo q un usuario comun ni necesita saber para q son. Solo basta con tener tu /home con tu usuario y tus carpetas y listo. Cuando tengo q hacer un bkp de Ubuntu, copio todo el home y a la mierda :D
    Por eso creo q la estructura de archivos es excepcional. La de Windows esta mil años atrasada.

    También es bueno decir, ayudar mucho particionar el disco de manera que el /home, quedo solito en otra partición, así cuando debemos formatear y re instalar el sistema, no hay necesidad de backupear nada. 10gb para /; lo demás para el /home.
    Nos vemos :)

    Chuky934 coincido con vos en algunos aspectos, te doy un ejemplo de como laburaba yo en un organismo con las pc con win$, tenes que hacer tres particiones, en la primera instala win$ y los prog. en la segunda direcciona Doc&settings y en la tercera, la mas piola, imagen de la primera con partimage (en knoppix viene instalado). Cuando se jode la particion, en 2 minutos reloj (dependiendo del hardware) la tenes lista.
    para las pcs con linux podes hacer las mismas particiones ademas de la de swap, una para /, otra para /home otra para swap y otra para la imagen con partimage.
    Al que no conoce partimage, sirve para crear una imagen de una particion, en 15 la crea, en 2 a 3 minutos la recupera. saludos, dejen sus comentarios.
    Luis

  10.   Byte Corrupto dijo

    Si hasta hay casos en que podemos encontrarnos con una directorio Archivos de programa y otro Program Files.

    Archivos de programa es un enlace simbolico a Program Files.

    Yo no considero que Linux este estandarizado en la organizacion de sus archivos. Las distros colocan los archivos donde quieren, por ejemplo, los directorios de KDE3 y KDE4. Tambien las aplicaciones eligen el directorio que se les antoje para colocar los datos de aplicacion personales, ya sabes, todas esas carpetas ocultas en tu carpeta de usuario.

  11.   Nitsuga dijo

    Archivos de programa es un enlace simbolico a Program Files.

    Me parece que te confundiste de SO. Windows XP no tiene enlaces simbólicos, y 123 está hablando de Windows XP. En VIsta se soluciona el problema haciendo una carpeta Program Files pero cuyo nombre cambia en el explorador de windows dependiendo de la localización. Es confuso, pero mejor que lo que había antes.

    Tambien las aplicaciones eligen el directorio que se les antoje para colocar los datos de aplicacion personales, ya sabes, todas esas carpetas ocultas en tu carpeta de usuario.

    No veo la confusión. Si bien “deberían” poner los archivos de configuración en .config, y no lo hacen, los ponen hacen con una carpeta con su nombre! No es tanto despiole

  12.   Thalskarth dijo

    Realmente no sabía lo de /usr, al igual que muchos siempre pensé que era por user…más aún, porque, por ejemplo en opensolaris el directorio /home se halla dentro de /usr.

    Realmente, el diseño me parece muy piola y práctico, además que de, para los usuarios normales, nunca necesitás conocer nada fuera del /Home/usuario de cada uno.

    Saludos

  13.   Byte Corrupto dijo

    Tanto Windows XP como Vistan cuentan con enlaces simbólicos (linkd y mklink respectivamente)

    En VIsta se soluciona el problema haciendo una carpeta Program Files pero cuyo nombre cambia en el explorador de windows dependiendo de la localización

    Windows no cambia el nombre de Program Files dependiendo de la localización; Windows crea un enlace simbólico a Program Files cuyo nombre depende desacuerdo a la localización para que facilite la comprensión de los directorios (que ese es tema en cuestión).

    No veo la confusión. Si bien “deberían” poner los archivos de configuración en .config, y no lo hacen, los ponen hacen con una carpeta con su nombre! No es tanto despiole

    Yo me refería a la falta de estandarización que existe Linux por parte de las distribuciones y aplicaciones de terceros (que por supuesto, eso sí causa confusión). Vamos, en Windows toda la configuración personal se guarda en AppData.

  14.   Nitsuga dijo

    Tanto Windows XP como Vistan cuentan con enlaces simbólicos (linkd y mklink respectivamente)

    En eso estas errado. Lo que hace Windows XP con linkd es un “junction point”. Un junction point solo puede usarse con carpetas (de otro modo hay que hacer un hardlink), y sólo en el mismo sistema de archivos (no podes hacer un junction point ente C:\loquesea y C:\Users\Usuario\loquesea si C:\loquesea es un punto de montaje de NTFS). En Windows XP SP3, y si, y sólo si, la partición fué creada POR Vista en adelante, se puede usar fsutil mksymlink para crear enlaces simbólicos.

    Windows no cambia el nombre de Program Files dependiendo de la localización; Windows crea un enlace simbólico a Program Files cuyo nombre depende desacuerdo a la localización para que facilite la comprensión de los directorios (que ese es tema en cuestión).

    No hace ni una cosa ni la otra. La carpeta se llama Program Files, y el explorador de windows muestra un nombre diferente. Como comprobarlo: entra a esa particion con windows XP SP3 o superior. Soporta symlinks en NTFS como Vista. Si estuviera, lo verías. Otra cosa distinta hace Vista con la carpeta Users y Documents and Settings, en la qu hace un junction point y ajusta los permisos para hacerlo invisible. Éste par es visible usando linux y ntfs-3g

    Vamos, en Windows toda la configuración personal se guarda en AppData.

    Salvo la del software libre, que siempre hace un carpetita con un punto en C:\Users\Usuario :P

  15.   Thalskarth dijo

    Vamos, en Windows toda la configuración personal se guarda en AppData.

    Y en GNU/linux toda la configuración personal se guarda en /home/nombredeusuario/

  16.   another_sam dijo

    Buena pregunta ffuentes!

    Como tú has dicho, en Windows sólo tengo que preocuparme por 3 carpetas. En cambio en GNU, por 14.

    Además, las cosas se instalan en sitios distintos dependiendo de tu distribución; por lo que la _diversión_ aumenta.

    En suma, para mí, no es que la estructura de ficheros en Linux sea difícil de entender a la primera; es que es difícil de entender. A secas. Incluso diría que nadie la entiende realmente. Si no, no habría 420 formas posibles y justificables como “correctas” de ubicar las cosas.

    Alguien podrá hablarme de las potenciales ventajas de clasificar por “semántica” del archivo en lugar de por “cliente” o de poder poner /boot en la lavadora, /etc en el microondas y /dev en el buzón de la calle.

    A esas personas yo les hablaré de la Vida Real. Ésa en donde el 97% de los usuarios de escritorio usa el típico PC/laptop/netbook con 3 particiones máximo (sistema, documentos, y porno), y se abstrae de los motivos de una clasificación u otra; simplemente quiere encontrar las cosas cuando las necesita.

    Conclusión: Creo que este estándard ofrece unas ventajas que a día de hoy son irrelevantes para el 97% de los usuarios. Y creo que este estándard ofrece unas desventajas notables para el 97% de los usuarios.

    Corolario: O se mejora este sistema o Linux no pasa del 1% de cuota de escritorio en la vida.

    Propuesta:
    1. Eliminar /usr
    2. Crear /apps
    3. Cada applicación guarda su config y sus datos app-level en /apps/nombre_app/los_archivos_que_quiera
    4. En /bin sólo se guardan ejecutables del sistema. En /etc sólo se guarda configuración del sistema. En /lib sólo se guardan librerías del sistema.
    5. Eliminar /opt. Coléricamente.

  17.   another_sam dijo

    añadid esto al CSS del site para que los comentarios se puedan leer mejor:
    p {
    margin: 0.5em 0;
    }

  18.   ffuentes dijo

    añadid esto al CSS del site para que los comentarios se puedan leer mejor:
    p {
    margin: 0.5em 0;
    }

    Gracias por la sugerencia

  19.   Nitsuga dijo

    En suma, para mí, no es que la estructura de ficheros en Linux sea difícil de entender a la primera; es que es difícil de entender. A secas. Incluso diría que nadie la entiende realmente. Si no, no habría 420 formas posibles y justificables como “correctas” de ubicar las cosas.

    No, en realidad es difícil de entender a la primera. Que vos no la entiendas no significa ue sea mala.

    A esas personas yo les hablaré de la Vida Real. Ésa en donde el 97% de los usuarios de escritorio usa el típico PC/laptop/netbook con 3 particiones máximo (sistema, documentos, y porno), y se abstrae de los motivos de una clasificación u otra; simplemente quiere encontrar las cosas cuando las necesita.

    Pues el típico usuario con máximo 3 particiónes podrá hacer enlaces a sus carpetas en otras particiones en su home (vamos, es muy fácil y “descubrible”) y encontrar TODO, pero todo, lo que necesita en una sola carpeta.

    Corolario: O se mejora este sistema o Linux no pasa del 1% de cuota de escritorio en la vida.
    Propuesta:
    1. Eliminar /usr
    2. Crear /apps
    3. Cada applicación guarda su config y sus datos app-level en /apps/nombre_app/los_archivos_que_quiera
    4. En /bin sólo se guardan ejecutables del sistema. En /etc sólo se guarda configuración del sistema. En /lib sólo se guardan librerías del sistema.
    5. Eliminar /opt. Coléricamente.

    Estoy en total y completo desacuerdo con el punto 3. Me hace acordar a Windows y los programas guardando datos en C:\Archivos de programa . /apps, al igual que /usr, es por root y de root. Nadie escribe ahi salvo root. Y /opt está para los desarrolladores perezosos que no quieren poner los datos de sus programas en donde corresponde. Si fuera por mí lo sacaría, peero ya me veo como todo termina desparramado en /usr/ de una forma tan caótica como en Windows.

  20.   Nacho dijo

    Yo opino que además de resumir todo el sistema de archivos a 2 carpetas (/home y /todolodemasquenoseparaquevale) eliminemos el terminal definitivamente, eliminemos el su root, instalemos un sistema-clonico al regedit y el pidgin tenga publicidad de coca-cola, que ya puestos a joder un magnífico sistema, se hace bien y con sponsors.

    ¬¬U

    Venga, no me jodáis. Si algo no se como va, intento entenderlo por mi cuenta. Si no puedo, pregunto.
    Y si aún así no puedo, pues me aguanto.

    Pero de ahí a cambiar algo que funciona bien, por que los usuarios no lo entienden…
    Los usuarios, el 70% de ellos, tienen terror a entrar en la carpeta c:\
    No saben desfragmentar, están plagados de virus y su conocimiento de internet se reduce a facebook. Y no hablo de si tienen que formatear.

    Joder, eso ya lo sabíamos. Yo no me considero un gurú, pero me molesté en investigar un poco, no en dar opciones para cambiar algo por que es demasiado complicado.

    ¿en serio creeis que a un usuario normal, le afecta en algo que su ubuntu/mandriva/suse/mint tenga /opt o no?

    Y los usuarios un poco más avanzados, saben donde mirar.
    O sea que no le veo problema por ningún lado.

  21.   RudaMacho dijo

    @Nacho +1
    Toda la razon. Lo de windows parece facil pero es un quilombo. Los unixes tienen esa ventajas, que son SIMPLES; sistema de ficheros bien estructurado, archivos de configuracion en texto plano, etc. Cuando lo aprendes lo agradeces.

  22.   Ravenman dijo

    @Nacho y RudaMacho +1 c/u. Tienen toda la razón; como dijeran antes: hay un lugar para cada cosa y cada cosa está en su lugar. ¿Ahora los winbugseros pretenden enseñarle al padre de todos los sistemas operativos (UNIX … y winbugs no cuenta como sistema operativo, así que no me vengan a decir que el engendro no es hijo de UNIX) cómo organizar la casa?. Es cierto que algunas distros ponen las cosas donde les antoja, pero sí hay estándares definidos para ello desde hace tiempo (ver http://es.wikipedia.org/wiki/Filesystem_Hierarchy_Standard); el hecho que unos no los sigan, no significa que todo el sistema está mal. Debemos destruir el motor que impulsa el crecimiento de la estupidez humana: la ignorancia; este ha sido mi pequeño aporte a la causa.

  23.   ruckoandroll dijo

    la estructura de archivos!!! me parece algo organizado y sobretodo es dificil que los puedan modificar al encriptarlos… lo de windows segun ecriptados y usar una contraseña para entrar… entro sin nada de nada de contraseña desde linux… me sorprendiò eso

  24.   Axel dijo

    Para Nitsuga. Por el comentario que ponés, si Linux tuviera una garcha, vos se la chupas y te tragarías su chele. Dejá de ser tan chupaverg*s y ponete a ver las cosas como son. Para algunas cuestiones, Linux anda bien y para otras no. Lo mismo para los SO Windows, para los cuales hay diferentes versiones segun las necesidades.

Escribe un comentario