tipos de archivos unix


Los siete tipos de archivo estándar de Unix son normal , directorio , enlace simbólico , FIFO especial , bloque especial , carácter especial y socket según lo definido por POSIX . [1] Diferentes implementaciones específicas del sistema operativo permiten más tipos de los que requiere POSIX (por ejemplo, puertas de Solaris ). El tipo de archivo se puede identificar mediante el ls -lcomando, que muestra el tipo en el primer carácter del campo de permisos del sistema de archivos .

Para archivos normales , Unix no impone ni proporciona ninguna estructura de archivo interna; por lo tanto, su estructura e interpretación dependen completamente del software que los utiliza. Sin embargo, el filecomando se puede usar para determinar qué tipo de datos contienen.

En la estructura de estadísticas , el tipo de archivo y los permisos (el modo ) se almacenan juntos en un st_mode campo de bits , que tiene un tamaño de al menos 12 bits (3 bits para especificar el tipo entre los siete posibles tipos de archivos; 9 bits para permisos) . POSIX define el diseño de los permisos para que tenga al menos 9 bits significativos, pero el resto no está definido. [1]

Por convención, el modo es un valor de 16 bits escrito como un número octal de seis dígitos sin un cero inicial. La parte de formato ocupa los 4 bits iniciales (2 dígitos octales), y "010" ( 1000 en binario) generalmente representa un archivo normal. Los siguientes 3 bits (1 dígito) generalmente se usan para setuid, setgid y sticky . La última parte ya está definida por POSIX para contener el permiso. Un ejemplo es "100644" para un archivo típico. Este formato se puede ver en git , tar y ar , entre otros lugares. [2]

El tipo de archivo se puede probar usando macros como S_ISDIR. Tal verificación generalmente se realiza enmascarando el modo con S_IFMT(a menudo el número octal "170000" para la convención de 4 bits de avance) y verificando si el resultado coincide S_IFDIR. S_IFMTno es un concepto central de POSIX, sino una extensión de X/Open System Interfaces (XSI); los sistemas que se ajustan solo a POSIX pueden usar algunos otros métodos. [1]

POSIX especifica [3] el formato de la salida para el formato largo ( -lopción). En particular, el primer campo (antes del primer espacio) se denomina "cadena de modo de archivo" y su primer carácter describe el tipo de archivo. El resto de esta cadena indica los permisos del archivo .