SISTEMAS DE ARCHIVOS

 

UNIX es un sistema operativo, al igual que DOS, en el que la organización de los archivos es jerárquica, organizada en directorios, presentando una estructura en forma de árbol, en donde los directorios son ramas y los archivos hojas. El directorio raíz (/) es el directorio principal, del que cuelgan subdirectorios, de los que a su vez cuelgan otros directorios o subdirectorios, etc.. En principio se puede suponer que no existe limitación en cuanto a amplitud como profundidad de la estructura, pero en realidad si existe dicha limitación, dependiendo esta de la versión, del espacio en disco disponible, etc.

Un sistema de archivos es equivalente a una unidad lógica en MSDOS, pero mientras en DOS se referencia automáticamente con una unidad (por ejemplo c:), en UNIX es necesario montarla (hacerla accesible). Montar un sistema de archivos consiste en asignar un directorio, o punto de montaje, a la unidad lógica. El montaje de un sistema de archivos se realiza con el comando mount, y el desmontaje con el comando umount. Ambas tareas solo son realizables, en principio, por root.

mount Dispositivo DirectorioMonta el Dispositivo en el directorio especificado.
mountMuestra los dispositivos montados.
umount DirectorioDesmonta el Directorio especificado.

Mientras en DOS una unidad lógica no puede extenderse más allá de la unidad física, es decir, no puede ser mayor que la unidad física, en UNIX si puede extenderse a varias unidades físicas, si bien esto depende de la versión de UNIX que se tenga cargada.

Entre los sistemas de archivos más comunes tenemos:

En UNIX existe una estructura de directorios que difiere poco de un sistema a otro. Entre los directorios más comunes tenemos:

En UNIX cualquier dispositivo se trata como un archivo. Un terminal tiene asociado un archivo, y por tanto si se escribe algo en ese archivo, aparecerá por el terminal. Lo mismo sucede con las impresoras, módem, etc..

/dev/rmt/0mPrimera unidad de cinta.
/dev/floppyUnidad de disquete.
/dev/ttyXXTerminales.

Para acceder a un directorio se puede utilizar el path o camino relativo o absoluto. El path absoluto se referencia al directorio raíz, por lo que siempre comenzará por el carácter "/" indicativo del directorio raíz. El path relativo, en cambio, se referencia al directorio en que se encuentra el usuario en ese momento (comenzará por ".." si se refiere al directorio superior al actual, o por "." o el nombre de un subdirectorio si se refiere al un subdirectorio del directorio actual).

cd /usr/binPath absoluto
cd ../binPath relativo

En general, los nombres de archivo pueden contener un máximo de 256 caracteres (o bytes, en conjuntos de caracteres que no sean ASCII), aunque en algunos equipos pueden estar limitados a 14 caracteres. Estos caracteres pueden ser cualquier combinación de las siguientes posibilidades:

En UNIX los archivos tienen permisos para el usuario, para el grupo del usuario y para el resto de usuarios. Con esto se puede hacer que un archivo sea accesible para un determinado usuario, o grupo de usuarios, que solo pueda modificarlo un usuario, etc. Los permisos de un archivo se indican con 10 caracteres se asignan con números:

Al ejecutar el comando "ls -l" nos aparecerá al principio de cada línea una información del tipo:

-rwxrwxrwxusuariogrupo...

El primer carácter hace referencia al tipo de archivo. El primer grupo rwx hace referencia al usuario propietario del archivo. El segundo grupo corresponde a los usuarios que pertenecen al mismo grupo que el propietario. El tercero pertenece al resto de usuarios. Root tiene acceso ilimitado a todos los archivos, aunque no tengan activado ningún permiso. Si aparece la letra indica que está permitido ese permiso, y si aparece un guión indica que está prohibido.

El carácter de tipo de archivo puede ser:

Los caracteres de tipo de permiso son:

Para cambiar los permisos de un archivo se utiliza el comando chmod (change mode):

chmod 750 archivo  o chmod u=rwx g=rx o=-rwx archivo

Dará permiso de lectura, escritura y ejecución para el propietario, de lectura y ejecución para el grupo de usuarios al que pertenezca el propietario, y ningún permiso para el  resto de usuarios.

Para cambiar el propietario de un archivo se utiliza el comando chown (change owner) y para cambiar el grupo del usuario chgrp (change group):

chown fulanito[:grupo] archivohace que fulanito pase a ser el propietario de archivo. Se puede especificar también el grupo.
chgrp users archivohace que el grupo users sea considerado como grupo del propietario

Existen unos permisos especiales que son:

En UNIX existe la posibilidad de generar enlaces a archivos o directorios, de forma similar a lo que sucede en Windows con los accesos directos. Los enlaces no son una copia del archivo, si no que son referencias a un archivo, pero a la hora de trabajar son equivalentes al propio archivo, se pueden editar, modificar, etc., y los resultados se actualizan en el archivo original.

Para enlazar archivos se emplea el comando ln (link):

ln [opciones] archivo directorio_destino

Los enlaces pueden ser físicos (hard) o simbólicos.