Tabla de contenidos
Tipos de ficheros
En Linux todo son ficheros, aunque de diferentes tipos:
- Ficheros normales (regular files): son los ficheros normales y corrientes (ni directorios, ni enlaces, etc)
- Directorios: Conocidos como «carpetas» en otros sistemas. Los directorios en Linux son un tipo especial de ficheros que contienen otros ficheros o directorios.
- Enlaces simbólicos: son ficheros que apuntan a otros ficheros.
- Enchufes (Sockets): Algunos ficheros pueden ser Unix domain Sockets. Se pueden encontrar ejemplos en la carpeta /var/run.
- Conductos/tuberías (Pipes): son un tipo específico de conductos. Consultar conductos con nombre.
- Ficheros especiales de dispositivo: Normalmente son los que encontramos en la carpeta /dev y pueden ser de dos tipos, dispositivos de bloque (b) y dispositivos del carácter (c).
Enlaces
Permiten que un solo fichero tenga múltiples caminos en un sistema de ficheros.
El fichero solo existe una vez y solo ocupa el espacio una vez, pero puede tener múltiples caminos (paths). Los enlaces son similares, aunque mucho mas potentes, a los accesos directos de Windows o a los alias de Mac OS. Existen dos tipos de enlaces:
- Enlaces simbólicos o soft links (aka symlinks).
- Enlaces duros o hard links.
La orden ln se encarga de crear enlaces de los dos tipos.
Enlaces simbólicos o soft links
El enlace simbólico se crea añadiendo el parámetro -s o –symbolic al comando ln.
Si se borra el enlace simbólico no se borra el fichero original. Si se borra el fichero enlazado, el link no apunta a ninguna parte (enlace roto).
Características de los enlaces simbólicos:
- Los enlaces simbólicos son un poco mas lentos que los duros.
- Se permite la creación de enlaces simbólicos a directorios.
- La creación o borrado de un enlace simbólico no afecta de ninguna forma el fichero destino.
- En la práctica son mas usuales los enlaces simbólicos.
Enlaces duros (hard links)
Un enlace duro es otro nombre de fichero que apunta al mismo inodo que el nombre original, siendo estos dos (o mas) nombres de igual importancia y validez. La única diferencia es que el nombre original se creó primero y el otro después.
Los enlaces duros los crea por defecto el comando ln.
Para borrar un fichero (inodo) con múltiples enlaces duros hay que borrar todos los enlaces duros.
Los enlaces duros no pueden apuntar a ficheros en diferentes sistemas de ficheros.
No se pueden crear enlaces duros de directorios (pero si simbólicos).
[QE2C] Ejemplo de creación de enlace duro:
$ ln Documentos Documentos2
$ ls -li
15728653 drwxr-xr-x 2 javier javier 4096 oct 26 13:11 Documentos
15728653 drwxr-xr-x 2 javier javier 4096 oct 26 13:11 Documentos2
Mediante la salida del ejemplo anterior sabemos que existen dos referencias para un solo archivo. El parámetro -l nos muestra el valor 2 en la tercera columna de la salida, el cual es el número de referencias para cada entrada. El parámetro -i permite detectar que las dos entradas/nombres se refieren al mismo archivo, por su número de inodo, en la primera columna: 15728653.
Desde el punto de vista del sistema, ambos nombres son completamente equivalentes. No existe por tanto, uno “original”. Al eliminar uno de estos, el contador de referencia se decrementa en uno, y cuando este llega al valor 0, el archivo se elimina.
Ficheros especiales
Ficheros ocultos
Los ficheros (o directorios) que empiezan por punto (.) son tratados por el sistema como ficheros ocultos.
No se muestran por defecto en aplicaciones como ls o navegadores gráficos como Nautilus a no ser que se le indique mediante parámetros o opciones de menú concretas.
Con ls, se pueden mostrar lo ficheros ocultos con -a (all).
Tener en cuenta que los directorios especiales . i .. son un tipo específico de directorios ocultos.
Ficheros de copia de seguridad (nombre_fichero~)
Algunas aplicaciones como Nautilus, por defecto no nos muestran estos ficheros (son tratados como ocultos.
Por convenio, algunos programas realizan copias de seguridad automáticas de ficheros.
Inodos
Inodo es abreviatura de nodo de indirección. El inodo almacena toda la información que el sistema tiene de un fichero, excepto su nombre. Existe exactamente un inodo por cada fichero.
Estructura de datos propia de los sistemas Unix/Linux
Contiene información de los objetos del sistema de archivos (archivos regulares, directorios, enlaces simbólicos).
- Permisos de usuario
- Datos de la última modificación.
- Ubicación en disco (no el nombre).
Cada inodo queda identificado por un número entero, único dentro del sistema de ficheros, y los directorios recogen una lista de parejas formadas por un número de inodo y un nombre identificativo que permite que permite acceder al archivo en cuestión. Cada archivo tiene un único inodo, pero puede tener mas de un nombre en diferentes o incluso en el mismo directorio para facilitar su localización.
Marcas de tiempo
Las marcas de tiempo son vitales para el correcto funcionamiento de algunas aplicaciones. Existen de tres tipos:
- Tiempo de último acceso (last access time o atime): Marca la última vez que el fichero fue leído.
- Tiempo de la última modificación (last modification time o mtime): Marca la última vez que los contenidos del fichero fueron modificados.
- Tiempo de cambio (change time o ctime): Marca la última vez que los permisos del fichero fueron modificados.
Organización de los directorios en Linux
A continuación se presenta un listado de los directorios mas importantes del sistema y su función.
/ Es la raíz del sistema de ficheros.
/bin/ Comandos/programas binarios esenciales (cp, mv, ls, rm, etc.),
/boot/ Ficheros utilizados durante el arranque del sistema (núcleo y discos RAM)
/dev/ Dispositivos esenciales, discos duros, terminales, sonido,
video, lectores dvd/cd, etc
/etc/ Ficheros de configuración utilizados en todo el sistema y que
son específicos del ordenador
/etc/opt/ Ficheros de configuración utilizados por programas alojados dentro
de /opt/
/etc/X11/ Ficheros de configuración para el sistema X Window (Opcional)
/etc/sgml/ Ficheros de configuración para SGML (Opcional)
/etc/xml/ Ficheros de configuración para XML (Opcional)
/home/ Directorios de inicios de los usuarios (Opcional)
/lib/ Bibliotecas compartidas esenciales para los binarios de /bin/, /sbin/ y
el núcleo del sistema.
/mnt/ Sistemas de ficheros montados temporalmente.
/media/ Puntos de montaje para dispositivos de medios como unidades lectoras
de discos compactos.
/opt/ Paquetes de aplicaciones estáticas.
/proc/ Sistema de ficheros virtual que documenta sucesos y estados del
núcleo. Contiene principalmente ficheros de texto.
/root/ Directorio de inicio del usuario root (super-usuario) (Opcional)
/sbin/ Comandos/programas binarios de administración de sistema.
/tmp/ Ficheros temporales
/srv/ Datos específicos de sitio servidos por el sistema.
/usr/ Jerarquía secundaria para datos compartidos de solo lectura (Unix system
resources). Este directorio puede ser compartido por
múltiples ordenadores y no debe contener datos específicos del
ordenador que los comparte.
/usr/bin/ Comandos/programas binarios.
/usr/include/ Ficheros de inclusión estándar (cabeceras de cabecera utilizados
para desarrollo).
/usr/lib/ Bibliotecas compartidas.
/usr/share/ Datos compartidos independientes de la arquitectura del
sistema. Imágenes, ficheros de texto, etc.
/usr/src/ Códigos fuente (Opcional)
/usr/X11R6/ Sistema X Window, versión 11, lanzamiento 6 (Opcional)
/usr/local/ Jerarquía terciaria para datos compartidos de solo lectura
específicos del ordenador que los comparte.
/var/ Ficheros variables, como son logs, bases de datos, directorio raíz
de servidores HTTP y FTP, colas de correo, ficheros temporales, etc.
/var/cache/ Cache da datos de aplicaciones.
/var/crash/ Depósito de información referente a caidas del sistema (Opcional)
/var/games/ Datos variables de aplicaciones para juegos (Opcional)
/var/lib/ Información de estado variable. Algunos servidores como MySQL y
PostgreSQL almacenan sus bases de datos en directorios subordinados de éste.
/var/lock/ Ficheros de bloqueo.
/var/log/ Ficheros y directorios de registro del sistemas (logs).
/var/mail/ Buzones de correo de usuarios (Opcional)
/var/opt/ Datos variables de /opt/.
/var/spool/ Colas de datos de aplicaciones.
/var/tmp/ Ficheros temporales preservados entre reinicios.
Directorio de soluciones a problemas comunes
Conceptos básicos previos
La aplicacióin gráfica Discos viene integrada en la instalación predeterminada de Ubuntu, y probablemente otras distribuciones también incluyan por defecto su propia aplicación gráfica de gestión de discos.
Error al intentar montar particiones exFAT
Ya sea de una tarjeta de memoria, pendrive, etc. Ubuntu por defecto no lee las particiones exFAT, ya que se trata de un sistema de archivos propietario de Microsoft. Para habilitar esta funcionalidad, instalamos dos paquetes desde terminal de comandos:
sudo apt-get install exfat-fuse exfat-utils
Una vez hecho acudir a la utilidad gráfica ‘Discos’ del sistema y verificar sobre que directorio se ha montado el dispositivo (p. ej. en mi equipo en /media/javier/4AA6-B2AA).
Deja una respuesta