En informática , un directorio es una estructura de catalogación de un sistema de archivos que contiene referencias a otros archivos de la computadora y, posiblemente, a otros directorios. En muchas computadoras, los directorios se conocen como carpetas o cajones , [1] de manera análoga a un banco de trabajo o al archivador tradicional de una oficina . El nombre deriva de libros como una guía telefónica que enumera los números de teléfono de todas las personas que viven en una determinada zona.
Los archivos se organizan almacenando los archivos relacionados en el mismo directorio. En un sistema de archivos jerárquico (es decir, uno en el que los archivos y directorios están organizados de manera similar a un árbol ), un directorio contenido dentro de otro directorio se denomina subdirectorio . Los términos padre e hijo se utilizan a menudo para describir la relación entre un subdirectorio y el directorio en el que está catalogado, siendo este último el padre. El directorio superior en un sistema de archivos de este tipo, que no tiene un padre propio, se denomina directorio raíz .
El tipo de medio de freedesktop.org para directorios dentro de muchos sistemas tipo Unix (incluidos, entre otros, los sistemas que utilizan GNOME , KDE Plasma 5 o ROX Desktop como entorno de escritorio) es "inode/directory". [2] Este no es un tipo de medio registrado por la IANA .
Históricamente, e incluso en algunos sistemas integrados modernos , los sistemas de archivos no admitían directorios en absoluto o solo tenían una estructura de directorios "plana" , es decir, no admitían subdirectorios; solo había un grupo de directorios de nivel superior, cada uno de los cuales contenía archivos. En los sistemas modernos, un directorio puede contener una combinación de archivos y subdirectorios.
Una referencia a una ubicación en un sistema de directorio se llama ruta .
En muchos sistemas operativos , los programas tienen un directorio de trabajo asociado en el que se ejecutan. Normalmente, se supone que los nombres de archivo a los que accede el programa residen dentro de este directorio si no se especifican con un nombre de directorio explícito.
Algunos sistemas operativos restringen el acceso de un usuario únicamente a su directorio personal o directorio de proyecto, aislando así sus actividades de todos los demás usuarios. En las primeras versiones de Unix, el directorio raíz era el directorio personal del usuario root , pero los Unix modernos suelen utilizar otro directorio como /root para este propósito.
De acuerdo con la filosofía Unix , los sistemas Unix tratan los directorios como un tipo de archivo. [3] Las advertencias incluyen no poder escribir en un archivo de directorio excepto indirectamente mediante la creación, el cambio de nombre y la eliminación de objetos del sistema de archivos en el directorio y solo poder leer desde un archivo de directorio utilizando rutinas de biblioteca específicas del directorio y llamadas del sistema que devuelven registros, no un flujo de bytes. [4]
El nombre carpeta , que presenta una analogía con la carpeta de archivos utilizada en las oficinas y se utilizó en un diseño de sistema de archivos jerárquico para la máquina de registro electrónico, contabilidad (ERMA) Mark 1 publicada en 1958 [5], así como por Xerox Star [6] , se utiliza en casi todos los entornos de escritorio de los sistemas operativos modernos . Las carpetas a menudo se representan con iconos que se parecen visualmente a las carpetas de archivos físicas.
Existe una diferencia entre un directorio , que es un concepto del sistema de archivos , y la metáfora de la interfaz gráfica de usuario que se utiliza para representarlo (una carpeta ). [ investigación original? ] Por ejemplo, Microsoft Windows utiliza el concepto de carpetas especiales para ayudar a presentar el contenido de la computadora al usuario de una manera bastante consistente que libera al usuario de tener que lidiar con rutas de directorio absolutas, que pueden variar entre versiones de Windows y entre instalaciones individuales. Muchos sistemas operativos también tienen el concepto de "carpetas inteligentes" o carpetas virtuales que reflejan los resultados de una búsqueda del sistema de archivos u otra operación. Estas carpetas no representan un directorio en la jerarquía de archivos. Muchos clientes de correo electrónico permiten la creación de carpetas para organizar el correo electrónico. Estas carpetas no tienen una representación correspondiente en la estructura del sistema de archivos.
Si uno se refiere a un contenedor de documentos , el término carpeta es más apropiado. [ cita requerida ] El término directorio se refiere a la forma en que se almacena una lista estructurada de archivos y carpetas de documentos en la computadora. La distinción puede deberse a la forma en que se accede a un directorio; en los sistemas Unix, /usr/bin/ generalmente se conoce como directorio cuando se ve en una consola de línea de comandos , pero si se accede a través de un administrador de archivos gráfico , los usuarios a veces pueden llamarlo carpeta.
Los sistemas operativos que admiten sistemas de archivos jerárquicos (prácticamente todos los modernos) implementan una forma de almacenamiento en caché en la RAM de las búsquedas de rutas recientes . En el mundo Unix , esto suele llamarse caché de búsqueda de nombres de directorio (DNLC), aunque en Linux se denomina dcache . [7]
En el caso de los sistemas de archivos locales, las entradas DNLC normalmente caducan solo bajo la presión de otras entradas más recientes. En el caso de los sistemas de archivos de red, es necesario un mecanismo de coherencia para garantizar que las entradas no hayan sido invalidadas por otros clientes. [7]
La ruta especifica el nombre del disco, o la ubicación, y todos los cajones que conducen al archivo especificado.