Está en la página 1de 5

EL SISTEMA DE ARCHIVOS

El sistema de archivos es un conjunto de programas que se encargan de realizar todas las


operaciones relacionadas con el almacenamiento y manipulación de los archivos. Son las funciones
que tratan con los dispositivos físicos de almacenamiento del computador, como el disco duro,
funciones como escribir, leer, borrar.

La jerarquía del sistema de archivos

Todo sistema operativo necesita guardar multitud de archivos: archivos de configuración, archivos
de registros, archivos de los usuarios, etc..

En general, cada sistema operativo utiliza su propio sistema de archivos, con características
propias como puede ser: el rendimiento, la seguridad, la fiabilidad, etc. GNU/Linux es capaz de
leer y escribir archivos con cualquiera de los sistemas de archivos que actualmente existen.

Durante el proceso de instalación del sistema operativo se preguntará cuál de estos tres queremos
usar. Generalmente se suele utilizar ext3 o ext2 por estar más probados que el ReiserFS.

Una característica muy importante de todos los sistemas operativos basados en UNIX y Linux es
que todos los dispositivos del sistema se pueden tratar como si fueran archivos. Es así que para
acceder al contenido de un CD, disquete o cualquier otro dispositivo de almacenamiento, debemos
montarlo en un directorio ya existente en el sistema y navegaremos por él como si se tratara de
un directorio más, en Linux no existen las unidades A:,B:,C:,D:,. . . esta forma de nombrar a las
particiones es sólo característica de Ms Windows.

El sistema de archivos parte de una misma raíz, a la cual nos referiremos con el carácter “/”
(slash), es el origen de todo el sistema de archivos y sólo existe una. Para organizar los
archivos adecuadamente, se utiliza la estructura jerárquica basada en árboles de directorios y
archivos, como la siguiente figura:

Directorios Principales del sistema

La mayoría de los sistemas operativos siguen el estándar FHS, donde se especifican las principales
características que debería tener cualquier sistema operativo.

Entre ellas está la distribución en directorios que tenemos que hacer de nuestros archivos para
tenerlos correctamente organizados y poder localizarlos de forma rápida y sencilla. En la mayoría
de distribuciones basadas en GNU/Linux se siguen estas recomendaciones, encontrando los
siguientes directorios principales:
 /bin: comandos básicos para todos los usuarios del sistema.
 /boot: archivos estáticos necesarios para el arranque del sistema.
 /dev: dispositivos del sistema.
 /etc: archivos de configuración del sistema y de las aplicaciones instaladas en el mismo.
 /home: directorio donde se alojan los directorios de los usuarios.
 /lib: librerías esenciales para el núcleo del sistema y módulos del mismo.
 /mnt: punto de montaje temporal para acceder a los dispositivos.
 /proc: procesos y variables del núcleo del sistema.
 /root: directorio de trabajo del usuario root del sistema.
 /sbin: comandos especiales para el root del sistema.
 /tmp: archivos temporales. Según la distribución utilizada (o la configuración que
utilicemos) se borran al arrancar el sistema o cada cierto período de tiempo.
 /usr: segunda estructura jerárquica, utilizada para almacenar el software instalado en el
sistema, páginas de manuales, directorios de código fuente, .
 /var: directorio para las colas de impresión, de correos, archivos de registro, etc., toda
información que tenga que ver con el registro del sistema.

Se recomienda conservar y no eliminar ninguno de estos directorios, o cualquier otro que se cree
durante el proceso de instalación, ya que son básicos para el buen funcionamiento del sistema.
Generalmente, los instaladores de los programas necesitan que exista la organización detallada y
muchos de los archivos de configuración de los programas deben estar en determinados
directorios, es por ello que debe respetarse esta estructura.

Nombres de archivos en Linux

 Los nombres de archivos en Linux (como en todos los UNIX) distinguen mayúsculas de
minúsculas, esto es, son "case sensitive". Los archivos README, readme, REadme y

rEadme por ejemplo son archivos distintos y por lo tanto al ser nombres distintos pueden
estar en el mismo directorio.

 En Linux los archivos no tiene por qué tener una extensión. La suelen tener a modo
orientativo, pero no es en absoluto necesario. Linux sabe qué contiene cada archivo

independientemente de cuál sea su extensión. Por comodidad, podremos llamar a todos

nuestros archivos de texto con la extensión .texto, o a todos nuestros documentos con la

extensión .documento, de esta manera, podremos luego agruparlos más fácilmente.

 Los archivos y directorios ocultos en Linux comienzan su nombre por un punto (.)
 Los nombres de archivos o directorios pueden ser muy largos, de más de 200 caracteres,
lo cual nos da bastante flexibilidad para asociar el nombre de un archivo con lo que contiene.

 Para referencia a un archivo que contenga un espacio en su nombre deberá precederlos


con 1 back flash “\” o con apóstrofes simples (‘).

Comodines
Los comodines válidos para cualquier archivo: "*" y "?"

 * : RESTO/TODO: Solo sustituye a TODOS los archivos, delante/detras/en medio del


archivo todo lo que coincida con él.
 ? : CUALQUIER CARÁCTER: que coincida con el resto que esté escrito.

Tipos de archivos

 Regular. Son aquellos que almacenan información: cartas, listas, códigos.


 Directorios. Son una tabla con números de inodos y nombres de archivos, sirven
para organizar los archivos y directorios.
 Archivos especiales. Pueden ser dispositivo tipo carácter o dispositivo de bloques.
El manejo de estos archivos depende del dispositivo en particular: disco duro, disquete, cinta

magnética, etc.
 Fifo son pipes con nombre. Son propios de System V.
 Enlaces simbólicos (symbolic links). Son archivos que contiene un puntero
a otro archivo que podría perfectamente estar en un sistema de archivos distinto.
 El Socket es un archivo especial de 4.3 BSD y se utiliza para comunicar procesos que
pueden estar en máquinas distintas.
 Enlaces rígidos (hard links). Realmente es un único archivo que puede ser
visto con distintos nombres dentro de un mismo sistema de archivos. La información reside

en un mismo lugar y lo que ocurra aparentemente en un sitio ocurrirá instantáneamente en

el otro lugar. Los enlaces de este tipo no pueden ocurrir entre sistemas de archivos distintos.

No todos los sistemas de archivos soportan hard links ya que es un concepto muy ligado a

los SO tipo Unix.

Comandos para manipular archivos y directorios

 Comando ls: Permite listar el contenido de un directorio.


Algunas opciones:

-l : muestra la salida en formato largo.

-R : lista recursivamente un directorio, es decir todo lo que contiene incluso subdirectorios.

-a : lista además los archivos ocultos.

-h : muestra el tamaño de los archivos en forma más legible (Ej: 16M, 4k, etc.)

-i : muestra el identificador del i-nodo asociado a cada elemento.

-full-time : combinado con el formato largo muestra la fecha completa de la última

modificación de cada elemento.

$ ls -hl /etc
$ ls -R /usr
$ ls -al
$ ls -ali ..

 Comando cd: Se utiliza para cambiar el directorio actual.

$ cd /tmp
$ cd # cambia hacia el directorio home del usuario actual
$ cd - # cambia hacia el directorio anterior
$ cd .. # cambia hacia el directorio padre
$ cd ~ # cambia hacia el directorio base del usuario actual. Igual a cd.
$ cd ~pepe # cambia hacia el directorio base del usuario pepe

 Comando pwd: Muestra el camino absoluto del directorio en el cual nos encontramos
actualmente.

$ pwd

 Comando touch: Crea un archivo vacío, también se utiliza para cambiar la fecha de
acceso y/o modificación a un archivo.

Algunas opciones:

-a : Cambia solamente el tiempo de acceso.

-c : No crear archivos que no existían antes.

-d fecha : Usar fecha en lugar de la fecha actual. El formato de fecha es el siguiente:

MMDDHHMMAAAA, por ejemplo para representar el 7 de abril de 2001 a la 1:00 a.m., se

escribirá: 040701002001. Si el año a usar es el año actual, se puede obviar, entonces el

ejemplo anterior quedaría así: 04070100.

$ touch carta

 Comando mkdir : Se utiliza para crear directorios.

$ mkdir bin
$ mkdir -p
# se crean los directorios intermedios si es necesario.
docs/linuxdocs/howtos/pdf
 Comando rmdir : sirve para borrar directorios vacíos.

$ rmdir bin
$ rmdir
# se borra el directorio pdf si estuviera vacío.
linuxdocs/howtos/pdf
 Comando mv: Mueve un archivo hacia otro, o varios archivos hacia un directorio, permite
renombrar archivos o directorios.

Algunas opciones:

-i : ejecuta el comando de forma interactiva, o sea, pregunta ante de sobrescribir el destino


si existiera.

-u : actualiza (upgrade) el destino con el fuente solo si este es más reciente.

$ mv mail.cf
# renombra un archivo
mail.cf.old
$ mv -i *.txt /tmp # mueve archivos terminados en .txt al directorio /tmp
# renombra un directorio. Si existe el destino mueve el fuente
$ mv bin/ exe
hacia este
$ mv -u program.c # actualiza el archivo destino si es menos reciente que el
src/ fuente

 Comando cp: Permite copiar un archivo en otro, o varios archivos en un directorio.


Algunas opciones:

-p : si es posible preserva los atributos (dueño, grupo y permisos) de los archivos originales

en las copias.

-d : preserva los enlaces simbólicos en lugar de copiar los archivos a los que estos apuntan.

Actualmente es así por defecto.

-L : no preserva los enlaces simbólicos, o sea copia los archivos a los que estos apuntan.

-R : copia recursivamente un directorio


-a : es equivalente a las opciones -dpR.

-i : utiliza una forma interactiva (pregunta antes de sobrescribir el destino).

-l : hace enlaces fuertes a los archivos fuentes en lugar de copiarlos.

$ cp /etc/passwd . # copia el archivo al directorio actual


$ cp -a /etc/mail # copia recursivamente un directorio preservando atributos y
mailb/ enlaces
$ cp -i /usr/bin/*sh # copia interactivamente los archivos terminados en sh al
/tmp directorio /tmp
$ cp -l /bin/* bin/ # hace enlaces fuertes a todos los archivos en un directorio

 Comando rm: Se utiliza para borrar (desenlazar) archivos.


Algunas opciones:

-r : borra recursivamente un directorio.

-f : borra forzosamente en caso de que no se tenga permiso de escritura en forma directa.

-i : ejecuta el comando de forma interactiva.

$ rm prueba
$ rm -i bin/*
$ rm -rf temp/

También podría gustarte