Sistema de Archivos
Archivos Archivos Directorios Directorios Nombres de Archivo Nombres de ArchivoDirectorio Propio. Directorio Actual Directorio Propio. Directorio Actual Nombres de Directorio
Nombres de Directorio Cambios de directorio Cambios de directorio Estructura Interna de
Estructura Interna de los Archivoslos Archivos Propiedades de los archivos
Propiedades de los archivos Tipo y Permisos de achivos Tipo y Permisos de achivos El sistema de archivos en UNIX El sistema de archivos en UNIX Preguntas y Ejercicios
Preguntas y Ejercicios Bibliografía
Bibliografía
El sistema UNIX funciona totalmente en base a
El sistema UNIX funciona totalmente en base a archivos. Los programas, los datos, losarchivos. Los programas, los datos, los directorios y aún los
directorios y aún los controladores de dispositivos tales como discos, modems e impresoras,controladores de dispositivos tales como discos, modems e impresoras, son archivos.
son archivos.
El sistema de archivos de UNIX
El sistema de archivos de UNIX se organiza en una jerarquía de directorios se organiza en una jerarquía de directorios que resulta enque resulta en una estructura
una estructura arborescente.arborescente. Archivos.
Archivos.
Cada archivo tiene asociado un nombre, un contenido, un
Cada archivo tiene asociado un nombre, un contenido, un lugar de ubicación e informaciónlugar de ubicación e información de tipo administrativo, tal
de tipo administrativo, tal como dueño y tamaño. El contenido de un como dueño y tamaño. El contenido de un archivo puede ser texto,archivo puede ser texto, programas fuente, programas ejecutables, imágenes, sonidos y otros.
programas fuente, programas ejecutables, imágenes, sonidos y otros. Estructuralmente un archivo es una secuencia de bytes de
Estructuralmente un archivo es una secuencia de bytes de datos que reside en formadatos que reside en forma semipermane
semipermanente en algún medio estable, como ser nte en algún medio estable, como ser una cinta magnética o un disco.una cinta magnética o un disco. Directorios.
Directorios.
Los archivos se agrupan en directorios. Un directorio es un archivo que contiene una lista de Los archivos se agrupan en directorios. Un directorio es un archivo que contiene una lista de nombres de archivo e información acerca de los
nombres de archivo e información acerca de los mismos. Dentro del sistema de archivos, unmismos. Dentro del sistema de archivos, un directorio es una localización capaz de contener
directorio es una localización capaz de contener otros directorios o archivos. Dos archivosotros directorios o archivos. Dos archivos que se encuentren en distinto directorio
que se encuentren en distinto directorio pueden tener el mismo nombre sin confundirse.pueden tener el mismo nombre sin confundirse. El comando ls permite listar el contenido de un directorio:
El comando ls permite listar el contenido de un directorio: ls /var
ls /var
el argumento es un directorio; la
el argumento es un directorio; la salida son los nombres de archivos y salida son los nombres de archivos y subdirectorios en esesubdirectorios en ese directorio.
directorio. ls nota ls nota
el argumento es un archivo, la
el argumento es un archivo, la salida es el nombre del salida es el nombre del archivo.archivo. ls -l /var
ls -l /var
muestra los archivos y subdirectorios contenidos en
muestra los archivos y subdirectorios contenidos en /var/var en formato largo.en formato largo. ls -ld /var
ls -ld /var
muestra características del directorio
muestra características del directorio /var/var en lugar de los archivos y subdirectoriosen lugar de los archivos y subdirectorios contenidos en él.
Nombres de archivos. Nombres de archivos. Para el nombre de archivo
Para el nombre de archivo se puede usar prácticamente cualquier caracter, incluso caracteresse puede usar prácticamente cualquier caracter, incluso caracteres no visibles. Los caracteres
no visibles. Los caracteres $ ; \ & ! * |$ ; \ & ! * | causan confusión y no conviene usarlos. Secausan confusión y no conviene usarlos. Se aconseja usar solamente letras, números, punto, guión y subraya. UNIX diferencia
aconseja usar solamente letras, números, punto, guión y subraya. UNIX diferencia mayúsculas y minúsculas: el archivo
mayúsculas y minúsculas: el archivo NOTA.TXTNOTA.TXT es distinto del archivoes distinto del archivo nota.txtnota.txt yy también de
también de Nota.txtNota.txt. No se distingue entre nombre de archivo y. No se distingue entre nombre de archivo y extensión:
extensión: nota.nueva.txtnota.nueva.txt es un nombre de archivo válido, yes un nombre de archivo válido, y LCK..modemLCK..modem también.también. Un archivo que comienza por un
Un archivo que comienza por un punto no es visible:punto no es visible: touch .noseve touch .noseve ls ls ls -a ls -a ls
ls no lo muestra, pero síno lo muestra, pero sí ls -als -a.. rm .noseve
rm .noseve
lo borra como a cualquier archivo. lo borra como a cualquier archivo.
Directorio propio. Directorio actual. Directorio propio. Directorio actual.
Al ingresar al sistema cada usuario entra en su directorio propio, un directorio privado que no Al ingresar al sistema cada usuario entra en su directorio propio, un directorio privado que no es tocado por el sistema ni por los otros usuarios. El directorio en el
es tocado por el sistema ni por los otros usuarios. El directorio en el cual se encuentracual se encuentra posicionado el usuario en un momento dado se denomina su directorio
posicionado el usuario en un momento dado se denomina su directorio actual.actual. cd /usr/bin
cd /usr/bin pwd
pwd
cambia al directorio /usr/bin; el directorio actual es /usr/bin. cambia al directorio /usr/bin; el directorio actual es /usr/bin.
cd cd pwd pwd
devuelve al usuario a su directorio propio, que es ahora el directorio actual. devuelve al usuario a su directorio propio, que es ahora el directorio actual.
echo $HOME echo $HOME
nuestra el nombre del directorio
nuestra el nombre del directorio propio. HOME es una variable de propio. HOME es una variable de ambiente que contiene elambiente que contiene el nombre del directorio propio del
nombre del directorio propio del usuario.usuario. cd $HOME
cd $HOME
tiene el mismo efecto que cd. tiene el mismo efecto que cd. Nombres de directorios. Nombres de directorios.
Un directorio puede contener otros directorios
Un directorio puede contener otros directorios así como archivos ordinarios, lo que generaasí como archivos ordinarios, lo que genera una jerarquía o árbol de directorios. El directorio superior o directorio
una jerarquía o árbol de directorios. El directorio superior o directorio raíz se denomina /.raíz se denomina /. cd /
cd / pwd pwd
el directorio actual es el directorio raíz. el directorio actual es el directorio raíz.
cd cd
vuelve al directorio propio del usuario. vuelve al directorio propio del usuario. El caracter /
El caracter / se usa también para separar los componentes de un nombre de se usa también para separar los componentes de un nombre de archivoarchivo completo:
completo: /export/home/usuario1/nota./export/home/usuario1/nota. La porción
La porción /export/home/usuario/export/home/usuario es la ruta,es la ruta, notanota es el nombre del archivo. Si sees el nombre del archivo. Si se omite la ruta, se asume que el archivo se encuentra en el directorio actual. Un nombre tal omite la ruta, se asume que el archivo se encuentra en el directorio actual. Un nombre tal como
como
textos/libro/capitulo.1
textos/libro/capitulo.1 indica que su ruta comienza a partir del directorio actual.indica que su ruta comienza a partir del directorio actual. Sería lo mismo escribir
Sería lo mismo escribir ./textos/libro/capitulo.1./textos/libro/capitulo.1 ya que el punto designa elya que el punto designa el directorio actual. Dos puntos seguidos designa
directorio actual. Dos puntos seguidos designan el directorio de nivel superior al n el directorio de nivel superior al actual. Si elactual. Si el directorio actual es
ls ../usuario2 ls ../usuario2
muestra el contenido de los archivos en
muestra el contenido de los archivos en /home/usuario2/home/usuario2
El caracter / separa directorios incluídos como parte de un nombre de archivo o directorio. El caracter / separa directorios incluídos como parte de un nombre de archivo o directorio.
ls dir1 ls dir1
es un direccionamiento relativo; es un direccionamiento relativo;
ls
ls /home/esteban/home/esteban/dir1/dir1 es un direccionamiento absoluto. es un direccionamiento absoluto.
Pueden usarse comodines para referenciar directorios y archivos: Pueden usarse comodines para referenciar directorios y archivos:
cat
cat /home/esteba/home/esteban/*/*n/*/*
Cambios en la jerarquía de directorios. Cambios en la jerarquía de directorios.
mkdir nuevo.dir mkdir nuevo.dir crea un nuevo directorio. crea un nuevo directorio. rmdir nuevo.dir rmdir nuevo.dir
borra un directorio existente; actúa
borra un directorio existente; actúa sólo sobre directorios vacíos.sólo sobre directorios vacíos. mkdir dir1
mkdir dir1
mkdir dir1/dir2 mkdir dir1/dir2
touch dir1/dir2/arch2 dir1/arch1 touch dir1/dir2/arch2 dir1/arch1 ls -lR
ls -lR
muestra todos los archivos y directorios
muestra todos los archivos y directorios creados;creados; rm -r dir1
rm -r dir1 borra el directorio
borra el directorio y todos los archivos y y todos los archivos y subdirectorios que pueda contenersubdirectorios que pueda contener.. Estructura interna de los archivos.
Estructura interna de los archivos. Un archivo es una secuencia de bytes.
Un archivo es una secuencia de bytes. Un byte es equivalente a Un byte es equivalente a un caracter. El sistema noun caracter. El sistema no impone estructura alguna a los archivos ni
impone estructura alguna a los archivos ni asigna significado a su contenido; el significado deasigna significado a su contenido; el significado de los bytes depende totalmente de los programas que interpretan
los bytes depende totalmente de los programas que interpretan el archivo.el archivo.
En ningún caso hay ningún byte que no haya sido colocado por el usuario o un programa. No En ningún caso hay ningún byte que no haya sido colocado por el usuario o un programa. No hay caracter de fin de archivo. El núcleo del sistema UNIX se mantiene al tanto del
hay caracter de fin de archivo. El núcleo del sistema UNIX se mantiene al tanto del tamañotamaño de los archivos sin introducir
de los archivos sin introducir ningún caracter especial. El caracter nuevalínea es interpretadoningún caracter especial. El caracter nuevalínea es interpretado por las terminales como nueva línea y
por las terminales como nueva línea y retorno de carro (CR retorno de carro (CR LFLF, carriage-return y , carriage-return y line-feed),line-feed), necesario para desplegar correctamente los renglones en la terminal. Al apretar la
necesario para desplegar correctamente los renglones en la terminal. Al apretar la tecla Entertecla Enter el núcleo transmite a la terminal CR LF, pero en un archivo se guarda sólo LF.
el núcleo transmite a la terminal CR LF, pero en un archivo se guarda sólo LF.
¿Qué hay dentro de un archivo? El núcleo no puede decirnos nada del tipo de archivo: no lo ¿Qué hay dentro de un archivo? El núcleo no puede decirnos nada del tipo de archivo: no lo conoce. T
conoce. Todos los archivos tienen odos los archivos tienen la misma estructura interna. la misma estructura interna. El comandoEl comando filefile hace unahace una conjetura: lee algunos bytes y
conjetura: lee algunos bytes y busca indicios sobre el tipo busca indicios sobre el tipo de contenido. En los sistemasde contenido. En los sistemas UNIX hay sólo una
UNIX hay sólo una clase de archivo. Lo único que clase de archivo. Lo único que se requiere para accederlo es su se requiere para accederlo es su nombre.nombre. Propiedad de los archivos.
Propiedad de los archivos.
Cada usuario es dueño de los archivos creados por él, hasta que los borre o los ceda a otro Cada usuario es dueño de los archivos creados por él, hasta que los borre o los ceda a otro usuario. Cada usuario pertenece a un grupo, y
usuario. Cada usuario pertenece a un grupo, y puede compartir archivos con los usuarios depuede compartir archivos con los usuarios de ese grupo. Cada archivo está asignado a un
ese grupo. Cada archivo está asignado a un grupo de usuarios, al cual debe grupo de usuarios, al cual debe pertenecer supertenecer su dueño. El comando
Tipo y permisos de archivos. Tipo y permisos de archivos. Cada archivo tienen un conjunto de
Cada archivo tienen un conjunto de permisos asociados con él que determinan qué puedepermisos asociados con él que determinan qué puede hacerse con el archivo y
hacerse con el archivo y quién puede hacerlo.quién puede hacerlo. Los permisos de un archivo se i
Los permisos de un archivo se indican con 10 caracteres:ndican con 10 caracteres: 1 caracter para tipo de archivo,
1 caracter para tipo de archivo,
3 caracteres [rwx] para permisos del
3 caracteres [rwx] para permisos del dueño,dueño, 3 caracteres [rwx] para permisos del
3 caracteres [rwx] para permisos del grupo,grupo, 3 caracteres [rwx] para permisos de
3 caracteres [rwx] para permisos de otros.otros. Caracter para tipo de archivo:
Caracter para tipo de archivo: d
d directoriodirectorio l
l enlace simbólicoenlace simbólico -
- archivo normalarchivo normal b
b archivo controlador de dispositivo orientado a bloquesarchivo controlador de dispositivo orientado a bloques c
c archivo control de dispositivo orientado a archivo control de dispositivo orientado a caracterescaracteres Caracteres de permisos:
Caracteres de permisos: r
r acceso de lectura (read)acceso de lectura (read) w
w acceso de escritura (write)acceso de escritura (write) x
x acceso de ejecución (execute)acceso de ejecución (execute) cuyo significado varía según se trate
cuyo significado varía según se trate de archivos o directorios:de archivos o directorios: P
Peerrmmiissoo AArrcchhiivvooss DDiirreeccttoorriiooss
rr lleeeer r aarrcchhiivvooss vveer r ccoonntteenniiddo o dde e ddiirreeccttoorriiooss w
w ggrraabbaar r een n uun n aarrcchhiivvoo ccrreeaar r y y bboorrrraar r aarrcchhiivvooss x
x eejjeeccuuttaar r ccoommo o pprrooggrraammaa iinnggrreessaar r a a uun n ddiirreeccttoorriioo -- ssiin n ddeerreecchhooss ssiin n ddeerreecchhooss
El ingreso a un directorio (permiso x) permite ejecutar un archivo contenido dentro de él, o El ingreso a un directorio (permiso x) permite ejecutar un archivo contenido dentro de él, o trasladarse a ese directorio; para
trasladarse a ese directorio; para estas operaciones no es necesario poder ver los nombres deestas operaciones no es necesario poder ver los nombres de los archivos contenidos (permiso r).
los archivos contenidos (permiso r).
Un archivo se declara ejecutable dándole permiso de ejecución. Se ejecuta
Un archivo se declara ejecutable dándole permiso de ejecución. Se ejecuta dando su nombre.dando su nombre. Los comandos de UNIX
Los comandos de UNIX son archivos ejecutables.son archivos ejecutables. Ejemplos de permisos de archivo:
Ejemplos de permisos de archivo: rwxr--r-- rwxr--r-- rw-rw-r-- rw-rw-r-- rw--- rw---
El sistema de archivos en UNIX. El sistema de archivos en UNIX. Un sistema de archivos en UNIX
Un sistema de archivos en UNIX puede contener miles de archivos, cientos de directorios ypuede contener miles de archivos, cientos de directorios y cientos de enlaces simbólicos, dependiendo de la distribución y de
cientos de enlaces simbólicos, dependiendo de la distribución y de lo que se haya lo que se haya instalado.instalado. Como referencia, la distribución Debian/GNU 2.1 viene con cerca
Como referencia, la distribución Debian/GNU 2.1 viene con cerca de 2500 paquetes parade 2500 paquetes para instalar
instalar. Una instalación normal puede insumir un . Una instalación normal puede insumir un 25% en herramientas de administración, y25% en herramientas de administración, y un 10 %
un 10 % en herramientas de desarrollo. Borrar, alterar o cambiar permisos de archivos puedeen herramientas de desarrollo. Borrar, alterar o cambiar permisos de archivos puede conducir a resultados impredecibles.
conducir a resultados impredecibles.
•
• $ ls -F /$ ls -F / •
• es útil para es útil para recorrer el sistema de archivos, bajando luego a recorrer el sistema de archivos, bajando luego a los subdirectorios.los subdirectorios. •
•Los requerimientos de las redes cambiaron la organización funcional del sistema deLos requerimientos de las redes cambiaron la organización funcional del sistema de
archivos. En un lugar grande, la
heterogéneas, cada una responsab
heterogéneas, cada una responsable del mantenimento y uso le del mantenimento y uso de cada archivo. Losde cada archivo. Los archivos pueden ser específicos para
archivos pueden ser específicos para cierta máquina, compartidos por varias cierta máquina, compartidos por varias máquinasmáquinas del mismo tipo, o accesibles a casi cualquier tipo de máquina en la red. Enlaces
del mismo tipo, o accesibles a casi cualquier tipo de máquina en la red. Enlaces simbólicos hacia la anterior localización de los
simbólicos hacia la anterior localización de los archivos ayudan al acceso. Unarchivos ayudan al acceso. Un directorio puede ser real o un enlace simbólico a otro; usar
directorio puede ser real o un enlace simbólico a otro; usar /bin/pwd/bin/pwd para si se hapara si se ha llegado al directorio directamente o
llegado al directorio directamente o a través de un a través de un enlace simbólico.enlace simbólico.
•
•Convenciones en nombres de archivos y Convenciones en nombres de archivos y directorios.directorios. •
•/bin /bin archivos archivos ejecutables, ejecutables, comandos comandos de de usuariousuario •
•/boot /boot archivos archivos de de arranquearranque •
•/cdrom /cdrom punto punto de de montaje montaje para para la la uniad uniad de de CD-ROMCD-ROM •
•/dev /dev archivos archivos especiales especiales de de dispositivosdispositivos •
• [subdirectori[subdirectorios propios de os propios de System V]System V] •
• ./dsk ./dsk dispositivos dispositivos de de discodisco •
• ./fd ./fd dispositivos dispositivos descriptores descriptores de de archivoarchivo •
• ./kd ./kd dispositivos dispositivos de de teclado teclado y y desplieguedespliegue •
• ./kmem ./kmem memoriamemoria •
• ./null ./null dispositivo dispositivo para para descarte descarte de de salidassalidas •
• ./osm ./osm mensajes mensajes de de error error del del núcleonúcleo •
• ./pts ./pts pseudo pseudo ttys; ttys; igual igual que que /dev/pts*/dev/pts* •
• ./rdsk ./rdsk dispositivos dispositivos crudos crudos de de discodisco •
• ./term ./term terminales; terminales; igual igual que que /dev/tty*/dev/tty* •
• ./xt ./xt pseudo pseudo ttys; ttys; para para capas capas DMDDMD •
•/dosc /dosc punto punto de de montaje montaje para para la la partición partición DOSDOS •
•/etc /etc configuracióconfiguración n de de paquetes, paquetes, configuracióconfiguración n dede
sistema sistema
•
• ./init.d ./init.d scripts scripts de de arranque arranque y y detención detención de de programasprogramas •
• ./rc?.d ./rc?.d enlaces enlaces a a scripts, scripts, con con K K o o S S (Kill (Kill o o Start),Start),
y número de y número de
•
• secuencia para controlar el arranquesecuencia para controlar el arranque •
• ./skel ./skel archivos archivos de de inicialización inicialización para para nuevosnuevos
usuarios usuarios
•
•/export /export directorios directorios de de usuarios usuarios en en sistemas sistemas grandesgrandes •
•/floppy /floppy para para montar montar una una unidad unidad de de disquetedisquete •
•/home /home objetos objetos relacionados relacionados con con los los usuariosusuarios