Capítulo 4. Archivos, directorios, usuarios y permisos

4.1. Archivos y directorios

Nota

Se va a utilizar el término fichero y archivo indistintamente, ya que son equivalentes.

En Linux, todos los recursos son tratados como Archivos. Así, los procesos, dispositivos, particiones, etc... tienen un fichero asociado sobre el que se puede, si es el caso, leer, escribir,etc...

Además toda la estructura de directorios parte de un único directorio raíz que en Linux se representa por la barra / (nótese la diferencia con la barra invertida que se utiliza en Windows como separador de carpetas en un path).

4.1.1. Noción de archivo o fichero

La información se guarda en unidades de almacenamiento como discos duros, disquetes, memorias USB, cds, etc. Dentro de una unidad, un disco por ejemplo, la información relativa a un documento determinado se guarda en una zona del disco que llamamos fichero o archivo. A estos ficheros les damos un nombre y, opcionalmente, una extensión separada por un punto. La extensión es importante para asociar los archivos con una determinada aplicación, de forma que, al hacer click sobre él, linux lance la aplicación en cuestion. Por ejemplo si un fichero tiene algunas de las extensiones .jpg, .bmp, .tiff, .gif o .png, se asociará con una aplicación de imágenes (por ejemplo Gimp), mientras que si tiene la extensión .wav, se asociará con una aplicación de sonido (por ejemplo xmms).

4.1.2. Noción de directorio

En una unidad de almacenamiento puede haber muchos ficheros, por lo que localizar uno podría resultar complicado. Se hace necesario organizar el espacio para agrupar, según algún criterio, los archivos. Esas zonas en que dividimos los discos para organizar la información, son los directorios - o carpetas en terminología Microsoft-. Dentro de un directorio almacenaremos los documentos, pero, a su vez, lo podemos dividir en otras zonas o subdirectorios, creando así una estructura en árbol.

4.1.3. Patrones de nombres

A la hora de referenciar uno o varios archivos o directorios puede utilizarse una serie de caracteres especiales que permiten identificar a uno o varios de ellos a partir de un patrón común. A esta forma de referenciar se denomina en Linux patrones (comodines en Windows).

Los caracteres que se pueden utilizar en un patrón son:

  • ?: Sustituye a cualquier caracter en el nombre de un fichero o archivo.

    Utilizaremos un conjunto de ficheros para los ejemplos: maria.txt, mario.txt, mariano.txt, marcos.txt, marcos.jpg, marcos.gif y carlos.jpg

    Así, por ejemplo, el patrón: mari?.txt haría referencia a: mario.txt y maria.txt

  • *: Sustituye a cualquier número (incluso cero) de caracteres, sean cuales sean.

    Así, por ejemplo: mari*.txt haría referencia a: mario.txt, maria.txt, mariano.txt

    Otro ejemplo: mar*.txt haría referencia a: maria.txt, mario.txt, mariano.txt, marcos.txt

    Otro más: mar* haría referencia a: maria.txt, mario.txt, mariano.txt, marcos.txt, marcos.jpg, marcos.gif

    El patrón * haría referencia a todos ellos.

4.1.4. Estructura jerárquica del sistema de erchivos en Linux

Un sistema de ficheros linux tiene tipicamente la siguiente jerarquía:

  • /bin y /sbin contienen comandos binarios básicos del sistema.

  • /boot contiene ficheros necesarios para el arranque. Uno de estos ficheros es el propio kernel de linux.

  • /dev contiene los ficheros de todos los dispositivos del sistema. Por ejemplo, si tenemos una partición de un disco habrá un fichero para ella. Si tenemos una impresora habrá un fichero para ella.

  • /var contiene ficheros de contenido variable, como ficheros de mensajes del sistema, buzones de correo, bases de datos, etc.

  • /lib contiene las librerías usadas por las herramientas del sistema y los módulos del núcleo.

  • /etc contiene los ficheros de configuración de las aplicaciones.

  • /usr contiene la mayoria de las aplicaciones y librerías a compartir por todos los usuarios. Tiene típicamente la estructura que se ve en la figura anterior.

  • /usr/bin y /usr/sbin tiene los ejecutables de las aplicaciones.

  • /usr/lib tiene las librerías.

  • /usr/doc contiene documentación de las aplicaciones del sistema

  • /usr/local contiene aplicaciones.

  • /opt contiene aplicaciones.

  • /tmp contiene ficheros temporales.

  • /proc contiene ficheros de información del sistema.

  • /home contiene normalmente los directorios personales de usuarios (/home/usuario1, /home/usuario2).

  • disquetes, cdrom, particiones de disco, etc. Los puntos de montaje para el floppy y el CdRom están normalmente en /floppy y /cdrom, pero en Knoppix se encuentran dentro de /mnt, por lo que hay que montarlos en /mnt/floppy y en /mnt/cdrom.

4.1.5. Trabajo con ficheros y directorios

Los principales comandos para trabajar con ficheros y directorios son los siguientes:

  • cp: copia ficheros. (con -R copia directorios de forma recursiva)

  • mv: mueve ficheros y directorios.

  • cat: muestra por pantalla el contenido de un fichero.

  • more: muestra el contenido de un fichero pantalla a pantalla.

  • rm: borra un fichero.

  • ls: muestra el contenido de un directorio.

  • cd: cambia de directorio.

  • rmdir: borra un directorio.

  • mkdir: crea un directorio.

  • pwd: muestra el directorio donde nos encontramos.

4.1.6. Ficheros y directorios en KDE

También se pueden hacer las mismas operaciones desde el entorno KDE con el konqueror.

En Knoppix podemos lanzar el konqueror en modo navegador de archivos pulsando sobre el botón

en la barra de herramientas inferior.

Si hemos arrancado desde el CD de Knoppix, lanzaremos el navegador de archivos con los privilegios de usuario Knoppix, por lo que hay directorios, los del sistema, donde no tendremos acceso de escritura y en algunos casos ni siquiera de lectura.

Para lanzar un navegador de archivos Konqueror con privilegios absolutos, de root, hay que ir al menú: K --> Sistema --> Más programas --> Administrador de archivos - modo superusuario. Se nos pedirá la contraseña de root. Como vimos en el capítulo de cuestiones previas, root no tiene contraseña y hay que asignarle una antes de poder utilizar esta aplicación. Para ello, abrir una consol de root (KNOPPIX --> Consola de root) y teclear el comando

# passwd

Teclear dos veces la contraseña para confirmar y utilizar esta contraseña en el diálogo del Admnistrador de archivos -modo superusuario.

Podemos ver como se crean enlaces simbólicos a ficheros y directorios en los siguientes apuntes de Paco Aldarias Raya: Enlaces o accesos directos a ficheros y directorios.