Acceso a Sistemas de Archivos en Red Hat Enterprise Linux

Red Hat Enterprise LinuxBeginner
Practicar Ahora

Introducción

En este laboratorio, obtendrá experiencia práctica en la gestión de sistemas de archivos Linux en un sistema Red Hat Enterprise Linux (RHEL). Aprenderá a identificar sistemas de archivos y dispositivos de bloques, examinar el uso del disco utilizando df y du, y practicar el montaje y desmontaje manual de sistemas de archivos.

Además, este laboratorio le guiará a través de la localización eficiente de archivos utilizando comandos como locate y find, lo que le permitirá buscar archivos basándose en varios criterios como el nombre, la propiedad, los permisos, el tamaño, el tiempo y el tipo de archivo.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 95%. Ha recibido una tasa de reseñas positivas del 99% por parte de los estudiantes.

Identificar Sistemas de Archivos y Dispositivos de Bloque

En este paso, aprenderá a identificar sistemas de archivos y dispositivos de bloques en un sistema Red Hat Enterprise Linux. Comprender cómo se organiza el almacenamiento es fundamental para la administración del sistema. Exploraremos varios comandos para listar y examinar dispositivos de bloques y sus sistemas de archivos asociados.

Primero, comprendamos algunos conceptos clave:

  • Dispositivo de Bloque (Block Device): Un dispositivo de bloque es un archivo que proporciona acceso de bajo nivel a los dispositivos de almacenamiento. Ejemplos incluyen discos duros, SSDs y unidades USB. En Linux, estos se encuentran típicamente en el directorio /dev.
  • Partición (Partition): Una partición es una división lógica de un dispositivo de almacenamiento físico. Un solo disco duro puede tener múltiples particiones, cada una formateada con un sistema de archivos diferente o utilizada para diferentes propósitos.
  • Sistema de Archivos (File System): Un sistema de archivos es un método y una estructura de datos que un sistema operativo utiliza para controlar cómo se almacenan y recuperan los datos. Organiza los datos en archivos y directorios. Los sistemas de archivos Linux comunes incluyen XFS y ext4.
  • Punto de Montaje (Mount Point): Un punto de montaje es un directorio vacío en la jerarquía del sistema de archivos donde se adjunta o "monta" un sistema de archivos para hacer que su contenido sea accesible.

Comencemos por listar los dispositivos de bloque disponibles en su sistema utilizando el comando lsblk. Este comando proporciona una vista general en forma de árbol de todos los dispositivos de bloque y sus particiones.

lsblk

Debería ver una salida similar a esta, que muestra dispositivos como vda, vdb, etc., que representan dispositivos de disco virtual en su entorno de contenedor:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
vda    253:0    0   40G  0 disk
├─vda1 253:1    0    1M  0 part
├─vda2 253:2    0  100M  0 part /boot/efi
└─vda3 253:3    0 39.9G  0 part /
vdb    253:16   0   40G  0 disk

En la salida:

  • NAME: El nombre del dispositivo de bloque (por ejemplo, vda, vdb) o partición (por ejemplo, vda1, vda2).
  • MAJ:MIN: Números de dispositivo mayor y menor.
  • RM: Dispositivo extraíble (1 si es extraíble, 0 si no).
  • SIZE: El tamaño del dispositivo o partición.
  • RO: Solo lectura (1 si es de solo lectura, 0 si no).
  • TYPE: Tipo de dispositivo (por ejemplo, disk, part para partición).
  • MOUNTPOINTS: Dónde está montado actualmente el dispositivo o partición.

A continuación, examinemos los sistemas de archivos y su uso con el comando df. El comando df informa sobre el uso del espacio en disco del sistema de archivos.

df

La salida mostrará varios sistemas de archivos, su tamaño total, espacio utilizado, espacio disponible y puntos de montaje:

Filesystem     1K-blocks    Used Available Use% Mounted on
devtmpfs            4096       0      4096   0% /dev
tmpfs            1822216       0   1822216   0% /dev/shm
tmpfs             728888     616    728272   1% /run
efivarfs             256       9       243   4% /sys/firmware/efi/efivars
/dev/vda3       41773036 3628732  38144304   9% /
/dev/vda2         102156    7198     94958   8% /boot/efi
tmpfs             364440       0    364440   0% /run/user/1000

Para que la salida sea más legible, especialmente para los tamaños, puede usar la opción -h para el formato legible por humanos (por ejemplo, M para MiB, G para GiB).

df -h

Verá los tamaños en un formato más comprensible:

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           1.8G     0  1.8G   0% /dev/shm
tmpfs           712M  616K  712M   1% /run
efivarfs        256K  8.5K  243K   4% /sys/firmware/efi/efivars
/dev/vda3        40G  3.5G   37G   9% /
/dev/vda2       100M  7.1M   93M   8% /boot/efi
tmpfs           356M     0  356M   0% /run/user/1000

Finalmente, usemos el comando lsblk -fp para listar la ruta completa de los dispositivos, sus UUIDs (Identificadores Únicos Universales) y los tipos de sistema de archivos. Los UUID son identificadores estables que permanecen iguales incluso si los nombres de los dispositivos cambian, lo que los hace útiles para el montaje consistente.

lsblk -fp

La salida incluirá UUIDs y tipos de sistema de archivos:

NAME        FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
/dev/vda
├─/dev/vda1
├─/dev/vda2 vfat   FAT16       E52E-0564                              92.7M     7% /boot/efi
└─/dev/vda3 xfs          root  4c234c8b-4f67-4d65-abb5-06753b1ec236   36.4G     9% /
/dev/vdb

Observe la columna UUID, que proporciona un identificador único para cada sistema de archivos. Esto es crucial para montar de forma fiable los sistemas de archivos, especialmente en archivos de configuración como /etc/fstab.

Examinar el Uso del Sistema de Archivos con df y du

En este paso, profundizará en el examen del uso del sistema de archivos utilizando los comandos df y du. Mientras que df proporciona una descripción general del uso del espacio en disco para los sistemas de archivos montados, du (uso del disco) se utiliza para estimar el uso del espacio de archivos para archivos o directorios específicos. Comprender la diferencia y cuándo usar cada comando es crucial para una gestión eficaz del espacio en disco.

Comencemos revisando el comando df con su opción legible por humanos. Este comando es excelente para obtener un resumen rápido de cuánto espacio se usa y está disponible en todos los sistemas de archivos montados.

df -h

La salida mostrará el uso del disco en un formato fácil de leer (por ejemplo, G para gigabytes, M para megabytes):

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        892M     0  892M   0% /dev
tmpfs           915M     0  915M   0% /dev/shm
tmpfs           915M   17M  899M   2% /run
tmpfs           915M     0  915M   0% /sys/fs/cgroup
/dev/vda4       8.0G  1.4G  6.7G  17% /
/dev/vda3      1014M  166M  849M  17% /boot
tmpfs           183M     0  183M   0% /run/user/1000

Ahora, exploremos el comando du. A diferencia de df, du calcula el espacio en disco utilizado por archivos y directorios dentro de una ruta especificada. Esto es particularmente útil cuando desea averiguar qué directorios o archivos están consumiendo más espacio.

Para ver el uso del disco de su directorio actual (~/project), use du sin ningún argumento. Esto enumerará el tamaño de cada archivo y subdirectorio dentro de ~/project.

du

La salida podría ser extensa, mostrando los tamaños en kilobytes de forma predeterminada:

4       ./.config/xfce4/xfconf/xfce-perchannel-xml
8       ./.config/xfce4/xfconf
12      ./.config/xfce4
16      ./.config
4       ./.local/share/nano
8       ./.local/share
12      ./.local
28      .

Para que la salida sea más legible, similar a df -h, puede usar la opción -h con du.

du -h

Esto mostrará los tamaños en unidades legibles por humanos:

4.0K    ./.config/xfce4/xfconf/xfce-perchannel-xml
8.0K    ./.config/xfce4/xfconf
12K     ./.config/xfce4
16K     ./.config
4.0K    ./.local/share/nano
8.0K    ./.local/share
12K     ./.local
28K     .

A menudo, está interesado en el tamaño total de un directorio en lugar del tamaño de cada archivo y subdirectorio individual. Para esto, puede usar la opción -s (summary) junto con -h. Comprobemos el tamaño total de su directorio de inicio (~).

du -sh ~

Este comando mostrará el tamaño total de su directorio de inicio:

48K     /home/labex

Creemos algunos archivos para ver cómo du informa sus tamaños. Crearemos un directorio llamado test_data y luego crearemos algunos archivos dentro de él.

Primero, cree el directorio:

mkdir ~/project/test_data

Ahora, navegue al directorio test_data:

cd ~/project/test_data

A continuación, cree algunos archivos con algo de contenido. Usaremos el comando head para generar archivos de tamaños específicos.

head -c 1K < /dev/urandom > file1.txt
head -c 5K < /dev/urandom > file2.txt
head -c 10K < /dev/urandom > file3.txt

Ahora, use du -h para ver los tamaños de estos nuevos archivos y el directorio test_data.

du -h

Debería ver una salida similar a esta:

1.0K    ./file1.txt
5.0K    ./file2.txt
10K     ./file3.txt
24K     .

La última línea (24K .) muestra el tamaño total del directorio actual (., que es ~/project/test_data).

Finalmente, volvamos a su directorio ~/project y verifiquemos el tamaño total de test_data usando du -sh.

cd ~/project
du -sh test_data

Esto mostrará el tamaño resumido del directorio test_data:

24K     test_data

Esto demuestra cómo se puede usar du para identificar el consumo de espacio en disco dentro de directorios específicos, lo que le ayuda a administrar el almacenamiento de manera efectiva.

Montar y Desmontar Sistemas de Archivos Manualmente

En este paso, aprenderá a montar y desmontar manualmente sistemas de archivos. Montar un sistema de archivos hace que su contenido sea accesible a través de un directorio específico (punto de montaje) en la jerarquía del sistema de archivos. Desmontar desconecta el sistema de archivos de su punto de montaje, haciendo que su contenido sea inaccesible hasta que se vuelva a montar. Esta es una habilidad crítica para administrar medios extraíbles, almacenamiento temporal o nuevas particiones de disco.

Para este ejercicio, usaremos uno de los dispositivos de bloque desmontados disponibles en su entorno de máquina virtual (VM) de LabEx. En el paso anterior, debería haber visto el dispositivo /dev/vdb que actualmente no está montado. Usaremos /dev/vdb para este paso.

Primero, confirmemos los dispositivos de bloque desmontados disponibles usando lsblk.

lsblk

Debería ver /dev/vdb listado sin ningún punto de montaje.

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
vda    253:0    0   40G  0 disk
├─vda1 253:1    0    1M  0 part
├─vda2 253:2    0  100M  0 part /boot/efi
└─vda3 253:3    0 39.9G  0 part /
vdb    253:16   0   40G  0 disk

Antes de poder montar un sistema de archivos, necesita un punto de montaje, que es un directorio vacío. Es práctica común usar /mnt para montajes temporales o crear un subdirectorio dentro de él. Creemos un nuevo directorio llamado mydata dentro de su directorio ~/project para que sirva como nuestro punto de montaje.

mkdir ~/project/mydata

Ahora, necesitamos formatear el dispositivo /dev/vdb con un sistema de archivos. Usaremos el sistema de archivos XFS, que es el predeterminado para Red Hat Enterprise Linux. Tenga cuidado con este comando, ya que borrará todos los datos en el dispositivo especificado.

sudo mkfs.xfs /dev/vdb

Verá una salida que indica la creación del sistema de archivos XFS:

meta-data=/dev/vdb               isize=512    agcount=4, agsize=2621440 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=10485760, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

Ahora que /dev/vdb tiene un sistema de archivos XFS, puede montarlo en su punto de montaje ~/project/mydata. El comando mount requiere privilegios sudo.

sudo mount /dev/vdb ~/project/mydata

Para verificar que el sistema de archivos se ha montado correctamente, use el comando df -h nuevamente. Debería ver /dev/vdb listado con /home/labex/project/mydata como su punto de montaje.

df -h

Busque /dev/vdb en la salida:

Filesystem      Size  Used Avail Use% Mounted on
...
/dev/vdb         40G  318M   40G   1% /home/labex/project/mydata

Ahora, puede crear archivos y directorios dentro de ~/project/mydata, y se almacenarán en el dispositivo /dev/vdb. Creemos un archivo de prueba:

sudo touch ~/project/mydata/testfile.txt

Puede listar el contenido de ~/project/mydata para confirmar la creación del archivo:

ls -l ~/project/mydata

Debería ver testfile.txt listado:

total 0
-rw-r--r--. 1 root root 0 Jun 16 11:09 testfile.txt

Cuando haya terminado de usar un sistema de archivos montado, es importante desmontarlo para evitar la corrupción de datos, especialmente antes de quitar un dispositivo físico. Use el comando umount para desmontar el sistema de archivos.

sudo umount ~/project/mydata

Si el comando de desmontaje falla con un error "target is busy" (el objetivo está ocupado), significa que algún proceso todavía está accediendo al punto de montaje. Esto suele ocurrir si su directorio de trabajo actual está dentro del sistema de archivos montado. Para resolver esto, cambie su directorio actual a una ubicación fuera del punto de montaje, por ejemplo, su directorio de inicio (~).

cd ~

Luego, intente desmontar de nuevo:

sudo umount ~/project/mydata

Después de desmontar, verifique que /dev/vdb ya no esté montado revisando df -h nuevamente.

df -h

Ya no debería ver /dev/vdb montado en /home/labex/project/mydata.

Filesystem      Size  Used Avail Use% Mounted on
...
## /dev/vdb should not be listed here anymore

Esto completa el proceso de montaje y desmontaje manual de un sistema de archivos.

Localizar Archivos por Nombre con locate y find

En este paso, aprenderá a localizar archivos en su sistema utilizando dos comandos potentes: locate y find. Ambos comandos le ayudan a buscar archivos, pero operan de manera diferente y son adecuados para diferentes escenarios.

Usando el comando locate

El comando locate es muy rápido porque busca en una base de datos preconstruida de nombres y rutas de archivos. Sin embargo, esto significa que podría no encontrar archivos que se crearon o eliminaron desde la última actualización de la base de datos. La base de datos se actualiza típicamente a diario mediante un trabajo cron, pero puede forzar una actualización.

Primero, asegurémonos de que el paquete mlocate, que proporciona el comando locate, esté instalado.

sudo dnf install -y mlocate

Verá una salida similar a esta durante la instalación:

Last metadata expiration check: 0:00:01 ago on Mon 15 May 2023 08:00:00 AM UTC.
Dependencies resolved.
================================================================================
 Package        Architecture  Version             Repository               Size
================================================================================
Installing:
 mlocate        x86_64        0.26-28.el9         rhel-9-for-x86_64-appstream-rpms 100 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 100 k
Installed size: 230 k
Downloading Packages:
mlocate-0.26-28.el9.x86_64.rpm     100 kB/s | 100 kB     00:01
--------------------------------------------------------------------------------
Total                                            100 kB/s | 100 kB     00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Installing       : mlocate-0.26-28.el9.x86_64                             1/1
  Running scriptlet: mlocate-0.26-28.el9.x86_64                             1/1
  Verifying        : mlocate-0.26-28.el9.x86_64                             1/1
Installed:
  mlocate-0.26-28.el9.x86_64

Complete!

Después de la instalación, necesita actualizar la base de datos locate. Este comando requiere privilegios sudo.

sudo updatedb

Este comando se ejecutará silenciosamente y puede tardar unos momentos dependiendo del tamaño de su sistema de archivos.

Ahora, busquemos un archivo común del sistema, como passwd.

locate passwd

Verá una lista de rutas que contienen "passwd":

/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/usr/share/man/man1/passwd.1.gz
/usr/share/man/man5/passwd.5.gz
...output omitted...

Para realizar una búsqueda que no distingue entre mayúsculas y minúsculas, use la opción -i. Busquemos archivos que contengan "messages" sin preocuparnos por las mayúsculas y minúsculas.

locate -i messages

Verá resultados como:

/usr/share/locale/zza/LC_MESSAGES
/usr/share/makedumpfile/eppic_scripts/ap_messages_3_10_to_4_8.c
/usr/share/vim/vim82/ftplugin/msmessages.vim
...output omitted...

También puede limitar el número de resultados usando la opción -n. Busquemos las primeras 5 apariciones de "passwd".

locate -n 5 passwd

Esto mostrará solo las primeras 5 coincidencias:

/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/usr/share/man/man1/passwd.1.gz
/usr/share/man/man5/passwd.5.gz

Usando el comando find

El comando find busca en el sistema de archivos en tiempo real, lo que lo hace más lento que locate, pero asegura que encuentra todos los archivos que coinciden con sus criterios, incluidos los creados muy recientemente. También ofrece opciones de búsqueda mucho más potentes.

La sintaxis básica para find es find [path] [expression]. Si no se especifica ninguna ruta, busca en el directorio actual.

Busquemos el archivo sshd_config comenzando desde el directorio raíz (/).

find / -name sshd_config

Debería ver la ruta al archivo de configuración:

/etc/ssh/sshd_config

Al buscar nombres parciales o usar comodines, es importante citar el patrón del nombre de archivo para evitar que el shell lo expanda prematuramente. Busquemos todos los archivos que terminen con .txt en su directorio ~/project.

find ~/project -name '*.txt'

Si creó file1.txt, file2.txt y file3.txt en el paso anterior, debería verlos listados:

/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
/home/labex/project/test_data/file3.txt

Para realizar una búsqueda que no distingue entre mayúsculas y minúsculas con find, use la opción -iname. Busquemos archivos que contengan "README" (sin distinción entre mayúsculas y minúsculas) en el directorio /usr/share/doc.

find /usr/share/doc -iname '*readme*'

Verá muchos resultados, por ejemplo:

/usr/share/doc/libselinux/README
/usr/share/doc/libsepol/README
/usr/share/doc/libsemanage/README
...output omitted...

El comando find es muy versátil y se puede combinar con otros criterios, lo que explorará en los siguientes pasos.

Encontrar Archivos por Propietario, Permisos, Tamaño y Tiempo

En este paso, aprenderá a usar el potente comando find para localizar archivos basándose en varios criterios más allá de su nombre. Esto incluye la búsqueda por propietario, permisos, tamaño y tiempo de modificación. Estas capacidades de búsqueda avanzadas son esenciales para tareas de administración del sistema como auditoría, limpieza y solución de problemas.

Encontrar Archivos por Propietario

Puede buscar archivos propiedad de un usuario o grupo específico utilizando las opciones -user y -group, respectivamente. Puede especificar el nombre del usuario/grupo o su ID numérico.

Busquemos todos los archivos en su directorio de inicio (~) que sean propiedad del usuario labex.

find ~ -user labex

Esto mostrará una lista de muchos archivos, incluidos sus archivos de configuración:

/home/labex
/home/labex/.bash_logout
/home/labex/.bash_profile
/home/labex/.bashrc
/home/labex/.config
/home/labex/.config/xfce4
/home/labex/.config/xfce4/xfconf
/home/labex/.config/xfce4/xfconf/xfce-perchannel-xml
/home/labex/.local
/home/labex/.local/share
/home/labex/.local/share/nano
/home/labex/project
/home/labex/project/test_data
/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
/home/labex/project/test_data/file3.txt
...output omitted...

De manera similar, para encontrar archivos propiedad del grupo labex:

find ~ -group labex

La salida será similar, ya que labex es típicamente el grupo principal para el usuario labex.

También puede buscar por ID de Usuario (UID) o ID de Grupo (GID). El usuario labex típicamente tiene un UID y GID de 1000.

find ~ -uid 1000
find ~ -gid 1000

Encontrar Archivos por Permisos

La opción -perm del comando find le permite buscar archivos con permisos específicos. Los permisos se pueden especificar en modo octal (por ejemplo, 755) o simbólico (por ejemplo, u=rwx,g=rx,o=rx).

Creemos un archivo de prueba en su directorio ~/project con permisos específicos.

touch ~/project/permission_test.txt
chmod 644 ~/project/permission_test.txt

Ahora, busquemos archivos en ~/project que tengan exactamente permisos 644.

find ~/project -perm 644

Debería ver permission_test.txt listado:

/home/labex/project/permission_test.txt

También puede usar un / o - inicial con los permisos octales:

  • /: Coincide si cualquiera de los bits de permiso especificados están configurados.
  • -: Coincide si todos los bits de permiso especificados están configurados.

Busquemos archivos en ~/project donde otros tengan al menos permiso de lectura (o=r o 004).

find ~/project -perm -004

Esto mostrará permission_test.txt y otros archivos que otorgan acceso de lectura a otros.

/home/labex/project/permission_test.txt
...output omitted...

Encontrar Archivos por Tamaño

La opción -size le permite buscar archivos en función de su tamaño. Puede especificar el tamaño con unidades (por ejemplo, k para kilobytes, M para megabytes, G para gigabytes). También puede usar + para "mayor que" y - para "menor que".

Busquemos archivos en su directorio ~/project/test_data que tengan exactamente 1 kilobyte de tamaño.

find ~/project/test_data -size 1k

Debería ver file1.txt:

/home/labex/project/test_data/file1.txt

Ahora, encuentre archivos mayores de 5 kilobytes.

find ~/project/test_data -size +5k

Esto debería listar file3.txt:

/home/labex/project/test_data/file3.txt

Y archivos menores de 10 kilobytes.

find ~/project/test_data -size -10k

Esto debería listar file1.txt y file2.txt:

/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt

Encontrar Archivos por Tiempo de Modificación

Puede buscar archivos en función de su tiempo de modificación utilizando opciones como -mmin (modificado hace minutos) o -mtime (modificado hace días).

Busquemos archivos en su directorio ~/project que se modificaron en los últimos 60 minutos.

find ~/project -mmin -60

Esto probablemente incluirá permission_test.txt y los archivos en test_data si los creó recientemente:

/home/labex/project
/home/labex/project/permission_test.txt
/home/labex/project/test_data
/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
/home/labex/project/test_data/file3.txt

Para encontrar archivos modificados hace más de 1 día (24 horas), puede usar +1 con -mtime.

find ~/project -mtime +1

Este comando podría no devolver ningún archivo si todos sus archivos ~/project se crearon o modificaron recientemente.

Estas opciones se pueden combinar para crear consultas de búsqueda muy específicas, lo que le permite administrar archivos de manera eficiente en su sistema.

Buscar Archivos Basado en el Tipo de Archivo

En este paso final, aprenderá a usar el comando find para buscar archivos basándose en su tipo. Esto es particularmente útil cuando necesita localizar todos los directorios, archivos regulares, enlaces simbólicos o archivos de dispositivo dentro de una ruta específica.

El comando find usa la opción -type seguida de un solo carácter para especificar el tipo de archivo. Aquí hay algunos tipos de archivos comunes que puede buscar:

  • f: Archivo regular
  • d: Directorio
  • l: Enlace simbólico (symlink)
  • b: Dispositivo de bloque
  • c: Dispositivo de carácter
  • p: Tubería con nombre (FIFO)
  • s: Socket

Comencemos buscando todos los directorios dentro de su directorio ~/project.

find ~/project -type d

Debería ver una salida similar a esta, que enumera todos los directorios y subdirectorios:

/home/labex/project
/home/labex/project/test_data

A continuación, busquemos todos los archivos regulares dentro de su directorio ~/project.

find ~/project -type f

Esto mostrará archivos como file1.txt, file2.txt y file3.txt que creó anteriormente:

/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
/home/labex/project/test_data/file3.txt

Ahora, creemos un enlace simbólico para demostrar la búsqueda de symlinks. Crearemos un symlink a file1.txt en su directorio ~/project.

ln -s ~/project/test_data/file1.txt ~/project/link_to_file1.txt

Verifique que el symlink se haya creado usando ls -l:

ls -l ~/project/link_to_file1.txt

Debería ver una salida que indica que es un enlace simbólico:

lrwxrwxrwx. 1 labex labex 32 May 15 08:00 /home/labex/project/link_to_file1.txt -> /home/labex/project/test_data/file1.txt

Ahora, busque todos los enlaces simbólicos dentro de su directorio ~/project.

find ~/project -type l

Debería ver su symlink recién creado:

/home/labex/project/link_to_file1.txt

Finalmente, busquemos dispositivos de bloque. Los dispositivos de bloque se encuentran típicamente en el directorio /dev.

find /dev -type b

Esto mostrará dispositivos de bloque como vda, vda1, vda2, etc.:

/dev/vda1
/dev/vda2
/dev/vda3
/dev/vda
/dev/vdb

Puede combinar la opción -type con otras opciones de find que aprendió en pasos anteriores. Por ejemplo, para encontrar todos los directorios en /etc que son propiedad del usuario root:

find /etc -type d -user root

Esto producirá una larga lista de directorios:

/etc
/etc/selinux
/etc/selinux/targeted
/etc/selinux/targeted/active
/etc/selinux/targeted/active/modules
...output omitted...

Esto concluye el laboratorio sobre el acceso a los sistemas de archivos de Linux y la localización de archivos. Ha aprendido a identificar dispositivos, examinar el uso del disco, montar y desmontar manualmente sistemas de archivos, y usar locate y find con varios criterios.

Resumen

En este laboratorio, obtuvimos experiencia práctica en la gestión de sistemas de archivos Linux en un sistema Red Hat Enterprise Linux. Comenzamos aprendiendo a identificar sistemas de archivos y dispositivos de bloque utilizando comandos como lsblk, comprendiendo conceptos clave como dispositivos de bloque, particiones, sistemas de archivos y puntos de montaje (mount points). Posteriormente, exploramos cómo examinar el uso del sistema de archivos con df y du, distinguiendo entre sus funcionalidades para informar sobre el espacio en disco. El laboratorio también cubrió la habilidad esencial de montar y desmontar manualmente sistemas de archivos, demostrando cómo hacer que el contenido del sistema de archivos sea accesible y luego separarlo.

Además, profundizamos en la localización eficiente de archivos utilizando varios criterios. Aprendimos a encontrar archivos por nombre con locate y find, comprendiendo las diferencias y los casos de uso apropiados para cada uno. El laboratorio extendió esto enseñando cómo buscar archivos basándose en la propiedad, los permisos, el tamaño y los atributos de tiempo, proporcionando herramientas poderosas para la administración y la solución de problemas del sistema. Finalmente, practicamos la búsqueda de archivos basándonos en sus tipos de archivo específicos, completando una visión general completa de la gestión del sistema de archivos y las técnicas de localización de archivos.