«¿Cuántos tipos de archivos hay en Linux/Unix y cuáles son?». Esta es una pregunta común a toda persona que comienza a aprender Linux. O.K, ¿por qué es tan importante conocer los tipos de archivos?
Respuesta: Esto es porque Linux considera cada cosa como un archivo. Cuando se empieza a trabajar en Linux / Unix caja que tiene que lidiar con diferentes tipos de archivo (linux / unix) para gestionar de manera efectiva
¿Cuántos tipos de archivo están allí en Linux / Unix? Ellos son…
Archivos regulares
-
Archivos de directorio
-
Archivos especiales (Esta categoría tiene 5 subtipos en ella.)
Así que en la práctica tenemos un total de 7 tipos(1+1+5) de archivos en Linux/Unix. Y en Solaris tenemos 8 tipos. Y usted puede ver la indicación del tipo de archivo en la parte más izquierda del comando «ls -l».
Aquí están esos tipos de archivos.
-
Fichero regular(-)
-
Archivos de directorio(d)
Archivos especiales
- Archivo de bloque(b)
- Archivo de dispositivo de caracteres(c)
- Archivo de tubería con nombre o simplemente de tubería file(p)
- Symbolic link file(l)
- Socket file(s)
Para su información hay un tipo de archivo más llamado door file(D) que está presente en Sun Solaris como se mencionó anteriormente. Una puerta es un archivo especial para la comunicación entre procesos entre un cliente y un servidor (así que hay un total de 8 tipos en las máquinas Unix). Vamos a aprender acerca de los diferentes tipos de archivos como la siguiente secuencia para cada tipo de archivo.
Definición e información del tipo de archivo
Cómo crear un tipo de archivo en particular
Cómo listar/ver un tipo de archivo en particular
Tipo de archivo regular explicado en Linux
Estos son los archivos que se indican con «-» en la salida del comando ls -l al comienzo de la línea. Y estos archivos son.
1. Archivo legible o
2. Un archivo binario o
3. Archivos de imagen o
4. Archivos comprimidos, etc.
¿Cómo crear archivos regulares en Linux/Unix?
Ans: Utilizar el comando touch/vi y los operadores de redirección, etc.
¿Cómo podemos listar archivos regulares?
ls -l | grep ^-
Ejemplo de listado de ficheros regulares :
-rw-r--r-- 1 krishna krishna 20986522 2010-01-31 13:48 test.wmv
-rw-r--r-- 1 krishna krishna 173448 2010-01-30 21:20 Transformers-Teaser-Wallpaper-310.jpg
-r-xr-xr-x 1 root 135168 2009-12-12 19:14 VIDEO_TS.VOB
-rw-r--r-- 1 krishna krishna 2113536 2009-12-01 13:32 Aditya 365 - Janavule.mp3
-rwxrwx 1 root 168 2010-02-14 14:12 xyz.sh
Explicación del tipo de archivo de directorio en Linux/Unix
Este tipo de archivos contiene archivos regulares/carpetas/archivos especiales almacenados en un dispositivo físico. Y este tipo de archivos estarán en color azul con enlace mayor o igual a 2.
¿Cómo podemos listarlos en mi directorio de trabajo actual?
ls -l | grep ^d
Ejemplo de listado de directorios.
drwxr-xr-x 2 surendra surendra 4096 2010-01-19 18:37 bin
drwxr-xr-x 5 surendra surendra 4096 2010-02-15 18:46 Escritorio
drwxr-xr-x 2 surendra surendra 4096 2010-01-18 14:36 Documentos
drwxr-xr-x 2 surendra surendra 4096 2010-02-13 17:45 Descargas
¿Cómo crearlos?
Ans : Utilice el comando mkdir
Tipo de archivo de bloque en Linux
Estos archivos son archivos de hardware la mayoría de ellos están presentes en /dev.
¿Cómo crearlos?
Ans : Usar el comando fdisk o crear una partición virtual.
¿Cómo podemos listarlos en mi directorio de trabajo actual?
ls -l | grep ^b
Ejemplo de listado de archivos Block(para que veas estos archivo, se encuentran en /dev).
brw-rw---- 1 root disk 8, 1 2010-02-15 09:35 sda1
brw-rw---- 1 root disk 8, 2 2010-02-15 09:35 sda2
brw-rw---- 1 root disk 8, 5 2010-02-15 09:35 sda5
Archivos de dispositivo de caracteres en Linux
Proporciona un flujo de entrada o salida en serie.Sus terminales son el ejemplo clásico para este tipo de archivos.
¿Cómo podemos listar los archivos de caracteres en mi directorio de trabajo actual?
ls -l | grep ^c
Ejemplo de listado de ficheros de caracteres(ubicados en /dev)
crw-rw-rw- 1 root tty 5, 0 2010-02-15 16:52 tty
crw--w---- 1 root 4, 0 2010-02-15 09:35 tty0
crw------- 1 root 4, 1 2010-02-15 09:35 tty1
Ficheros de tuberías en Linux/Unix
El otro nombre de la tubería es una tubería «con nombre», que a veces se llama FIFO. FIFO significa «First In, First Out» y se refiere a la propiedad de que el orden de los bytes que entran es el mismo que sale. El «nombre» de una tubería con nombre es en realidad un nombre de archivo dentro del sistema de archivos.
¿Cómo crearlas?
Ans: Use el comando mkfifo.
¿Cómo podemos listar los archivos de caracteres en mi directorio de trabajo actual?
ls -l | grep ^p
Ejemplo de listado de archivos de tuberías
prw-r----- 1 root 0 2010-02-15 09:35 /dev/.initramfs/usplash_outfifo
prw-r----- 1 root 0 2010-02-15 09:35 /dev/.initramfs/usplash_fifo
prw------- 1 syslog syslog 0 2010-02-15 15:38 /var/run/rsyslog/kmsg
Archivos de enlace simbólico en Linux
Son archivos vinculados a otros archivos. Son de tipo directorio/archivo regular. El número de inodo para este archivo y sus archivos padre es el mismo. Hay dos tipos de archivos de enlace disponibles en Linux/Unix, es decir, enlace suave y duro.
¿Cómo crearlos?
Ans : usar el comando ln
¿Cómo podemos listar los archivos enlazados en mi directorio de trabajo actual?
ls -l | grep ^l
Ejemplo de listado de ficheros enlazados
lrwxrwx 1 root 24 2010-02-15 09:35 sndstat -> /proc/asound/oss/sndstat
lrwxrwx 1 root 15 2010-02-15 09:35 stderr -> /proc/self/fd/2
lrwxrwx 1 root 15 2010-02-15 09:35 stdin -> /proc/self/fd/0
lrwxrwx 1 root 15 2010-02-15 09:35 stdout -> /proc/self/fd/1
Ficheros de socket en Linux
Un fichero de socket se utiliza para pasar información entre aplicaciones con fines de comunicación
¿Cómo crearlos?
Ans : Puedes crear un archivo de socket usando la llamada al sistema socket() disponible en
Ejemplo en programación C
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
Puedes referirte a este archivo de socket usando el sockfd. Esto es lo mismo que el descriptor de archivo, y puedes usar las llamadas al sistema read(), write() para leer y escribir desde el socket.
¿Cómo podemos listar los archivos Socket en mi directorio de trabajo actual?
ls -l | grep ^s
Ejemplo de listado de archivos socket.
srw-rw- 1 root 0 2010-02-15 09:35 /dev/log
srwxrwxrwx 1 root 0 2010-02-15 10:07 /var/run/cups/cups.sock
srwxrwx 1 root 0 2010-02-15 09:35 /var/run/samba/winbindd_privileged/pipe
srwxrwx 1 mysql mysql 0 2010-02-15 09:35 /var/run/mysqld/mysqld.sock
Un consejo para vosotros. ¿Cómo encontrar el tipo de archivo deseado?
Ans : Utilice el comando find con la opción -type. Por ejemplo, si usted quiere encontrar el archivo de socket, sólo tiene que utilizar el siguiente comando. find / -type s Si usted quiere encontrar el archivo vinculado entonces cómo? Find / -type l
Eso es….