Tipos de archivos y estructura de directorios en Linux
1.
2. Archivos ordinarios o normales . Contienen la información con la que trabaja
cada usuario.
Los archivos que consideremos “normales” pueden contener datos de usuario,
pueden contener configuraciones del sistema, pueden ser scripts, BINARIOS, ser
ejecutables o no, en cualquier caso, el sistema operativo simplemente lee estos
archivos y sin hacer suposiciones, muestra, aprovecha o ejecuta su contenido.
Directorios (o carpetas): . Son archivos especiales que contienen referencias a
otros archivos o directorios.
Los directorios (a veces llamadas carpetas) también son archivos… Son unos
archivos un tanto especiales, ya que lo que verdaderamente hacen es listar las
localizaciones de otros archivos, o de otros directorios, son en realidad,
pequeños índices que indican al sistema donde ha de ir a buscar para encontrar
algo en concreto.
3. Enlaces físicos o duros (hard links). No es específicamente una clase de
archivo sino un segundo nombre que se le da a un archivo. Supón que
dos usuarios necesitan compartir información de un mismo archivo. Si
cada uno tuviera una copia del archivo se soluciona el problema, pero
las modificaciones que realice un usuario no las vería el otro.
El enlace sirve para localizar el archivo en su ubicación actual, pero no
es el archivo real, sino un segundo nombre que se le da. De esta forma,
con tener un solo archivo real este se podrá utilizar por todos los
usuarios que lo necesiten mediante estos enlaces duros sin necesidad de
duplicar o triplicar el archivo.
De todo esto se destila que no pueden existir enlaces duros entre dos
archivos de particiones separadas, ya que cada una de ellas tiene su
propia tabla de inodos. Como ya hemos visto los enlaces duros se
refieren a un archivo original por su i-nodo.
4. Enlaces simbólicos. También se utilizan para asignar un segundo nombre a
un archivo. La diferencia con los enlaces duros es que los simbólicos
solamente hacen referencia al nombre del archivo original, mientras que
los duros hacen referencia al inodo en el que están situados los datos del
archivo original.
De esta manera, si tenemos un enlace simbólico y borramos el archivo
original perderemos los datos, mientras que si tenemos un enlace duro los
datos no se borrarán hasta que se hayan borrado todos y cada uno de los
enlaces duros que existen hacia esos datos en el sistema de ficheros.
El conteo del número de enlaces duros que tiene un fichero se realiza,
como ya vimos, en el inodo correspondiente a los datos del fichero.
Archivos especiales. Suelen representar dispositivos físicos, como
unidades de almacenamiento, impresoras, terminales, etc. En Linux, todo
dispositivo físico que se conecte al ordenador está asociado a un archivo.
Linux trata los archivos especiales como archivos ordinarios
5. ln nos permite establecer enlaces duros y enlaces simbólicos.
Opciones
-v, –verbose Muestra aquello que esta haciendo el comando. Es común en los
comandos de Linux que tengan una opción Verbose.
-s, –symbolic Como podemos suponer crea un enlace simbólico. Esta opción
simplemente produce un mensaje de error en sistemas que no admitan
enlaces simbólicos.
-d, -F, –directory Permite al súper-usuario hacer enlaces duros a directorios.
-f, –force Esta opción simplemente produce un mensaje de error en sistemas
que no admitan enlaces simbólicos.
-i, –interactive Pregunta antes de borrar ficheros de destino existente
-b, –backup Hace copias de respaldo de ficheros que estén a punto de ser
sobreescritos o borrados.
-n,
–no-dereference El comportamiento predeterminado es tratar un destino
que sea un enlace simbólico a un directorio como justamente un directorio.
Se recomienda leer el man de este comando para mayores aclaraciones de
esta opción.
-P, –physical Crea enlaces duros directamente a los enlaces simbólicos
-L, –logical
6. Linux cumple el Estándar de Jerarquía de Ficheros (FHS: FileSystem
Hierarchy Standar) que define las bases sobre las que se establece la
estructura de árbol de directorios. En estos momentos la versión establecida
de dicho Estándar es la 2.3 (definida en el año 2004), podemos consultar todo
el documento (algo interesante si quieres profundizar en el tema) desde este
enlace (en ingles), o desde este otro (en español)
Del directorio < / > de Linux cuelgan todos los dispositivos y las distintas
particiones de todos los discos y unidades usados por el sistema.
Contrariamente a Windows que nombra a cada partición y dispositivo por
una letra distinta A: , C: , D: , etc… Las particiones, discos, y dispositivos en
general, son “montados” en Linux en un directorio especial, que está
siempre por debajo del directorio raíz.
7. /bin Contiene los comandos básicos del sistema operativo.
/sbin Aquí suelen estar los comandos utilizados para la configuración
del sistema.
/dev Contiene los ficheros de dispositivo.
/boot Este directorio contiene los ficheros de arranque.
/etc Todos los archivos donde se almacena la configuración.
/root Directorio de trabajo del superusuario
/lib Librerías usadas por las aplicaciones
/mnt Aquí se montan los dispositivos de almacenamiento extraíbles,
como la disquetera o el CDRom,
y las particiones de disco que podamos tener.
/ home Contiene los subdirectorios de trabajo de los usuarios del
sistema.
/usr Este es el directorio donde suelen instalarse las aplicaciones
/tmp Este directorio lo usan algunas aplicaciones para escribir ficheros
temporales necesarios para su
ejecución.