Acceso a sistemas de archivos en Red Hat Enterprise Linux

Red Hat Enterprise LinuxBeginner
Practicar Ahora

Introducción

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

Además, este laboratorio te guiará para localizar archivos de manera eficiente utilizando comandos como locate y find, lo que te permitirá buscar archivos basándote en diversos criterios como nombre, propietario, permisos, tamaño, tiempo y tipo de archivo.

Identificar sistemas de archivos y dispositivos de bloque

En este paso, aprenderás a identificar sistemas de archivos y dispositivos de bloque 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 los dispositivos de bloque y sus sistemas de archivos asociados.

Primero, comprendamos algunos conceptos clave:

  • Dispositivo de bloque (Block Device): Es un archivo que proporciona acceso de bajo nivel a dispositivos de almacenamiento. Ejemplos incluyen discos duros, SSD y unidades USB. En Linux, estos se encuentran generalmente en el directorio /dev.
  • 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 propósitos distintos.
  • Sistema de archivos (File System): Es un método y estructura de datos que utiliza un sistema operativo para controlar cómo se almacenan y recuperan los datos. Organiza la información en archivos y directorios. Los sistemas de archivos comunes en Linux incluyen XFS y ext4.
  • Punto de montaje (Mount Point): Es un directorio vacío en la jerarquía del sistema de archivos donde se conecta o "monta" un sistema de archivos para hacer accesible su contenido.

Comencemos listando los dispositivos de bloque disponibles en tu sistema usando el comando lsblk. Este comando proporciona una vista general en forma de árbol de todos los dispositivos de bloque y sus particiones.

lsblk

Deberías ver una salida similar a esta. Tu máquina virtual puede usar nombres como vda y vdb, o nombres NVMe como nvme0n1 y nvme1n1:

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, nvme0n1 o nvme1n1) o partición (por ejemplo, vda1, vda2 o nvme0n1p2).
  • MAJ:MIN: Números mayor y menor del dispositivo.
  • 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 solo lectura, 0 si no).
  • TYPE: Tipo de dispositivo (ej. 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 de los sistemas 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 hacer la salida más legible, especialmente para los tamaños, puedes usar la opción -h para un formato legible por humanos (ej. M para MiB, G para GiB).

df -h

Verás 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 UUID (Identificadores Únicos Universales) y los tipos de sistema de archivos. Los UUID son identificadores estables que permanecen iguales incluso si cambian los nombres de los dispositivos, lo que los hace útiles para un montaje consistente.

lsblk -fp

La salida incluirá los UUID y los 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

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

Antes de pasar al siguiente paso, guarda un breve informe en tu directorio de proyecto para que puedas revisar la información del dispositivo de bloque y del sistema de archivos más tarde.

{
  lsblk
  echo
  df -h
  echo
  lsblk -fp
} > ~/project/filesystem_overview.txt

Puedes confirmar que el informe se creó con:

cat ~/project/filesystem_overview.txt

Examinar el uso del sistema de archivos con df y du

En este paso, profundizaremos en el examen del uso del sistema de archivos utilizando los comandos df y du. Mientras que df proporciona una visión general del uso del espacio en disco para los sistemas de archivos montados, du (disk usage) se utiliza para estimar el uso de 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 utiliza 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 (ej. 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 quieres averiguar qué directorios o archivos están consumiendo más espacio.

Para ver el uso del disco de tu directorio actual (~/project), usa du sin argumentos. Esto listará el tamaño de cada archivo y subdirectorio dentro de ~/project.

du

La salida puede ser extensa, mostrando los tamaños en kilobytes por defecto:

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 hacer la salida más legible, similar a df -h, puedes 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, te interesa el tamaño total de un directorio en lugar del tamaño de cada archivo y subdirectorio individual. Para esto, puedes usar la opción -s (resumen) junto con -h. Revisemos el tamaño total de tu directorio personal (~).

du -sh ~

Este comando mostrará el tamaño total de tu directorio personal:

48K     /home/labex

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

Primero, crea el directorio:

mkdir ~/project/test_data

Ahora, navega al directorio test_data:

cd ~/project/test_data

A continuación, crea algunos archivos con 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, usa du -h para ver los tamaños de estos nuevos archivos y del directorio test_data.

du -h

Deberías 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 tu directorio ~/project y verifica 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, ayudándote a gestionar el almacenamiento de manera efectiva.

Montar y desmontar sistemas de archivos manualmente

En este paso, aprenderás a montar y desmontar sistemas de archivos manualmente. 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 separa el sistema de archivos de su punto de montaje, haciendo que su contenido sea inaccesible hasta que se monte de nuevo. Esta es una habilidad crítica para gestionar medios extraíbles, almacenamiento temporal o nuevas particiones de disco.

Para este ejercicio, usaremos el disco adicional no montado que está disponible en tu entorno de máquina virtual de LabEx. Dependiendo de la máquina virtual, ese disco podría llamarse /dev/vdb, /dev/nvme1n1 o algo similar, por lo que lo detectaremos en lugar de codificar un nombre de dispositivo.

Primero, identifiquemos el disco raíz y el disco adicional que formatearás y montarás.

ROOT_PARTITION=$(findmnt -n -o SOURCE /)
ROOT_DISK="/dev/$(lsblk -no PKNAME \"$ROOT_PARTITION\")"
DATA_DISK=$(lsblk -dnpo NAME,TYPE | awk '$2 == "disk" {print $1}' | grep -vx "$ROOT_DISK" | head -n 1)
echo "$DATA_DISK"

Este comando debería imprimir la ruta al disco adicional, como /dev/vdb o /dev/nvme1n1.

/dev/nvme1n1

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

mkdir ~/project/mydata

Ahora, necesitamos formatear el disco adicional almacenado en $DATA_DISK con un sistema de archivos. Usaremos el sistema de archivos XFS, que es el predeterminado para Red Hat Enterprise Linux. Ten cuidado con este comando, ya que borrará todos los datos en el dispositivo especificado.

sudo mkfs.xfs "$DATA_DISK"

Verás una salida indicando la creación del sistema de archivos XFS. El nombre del dispositivo en la salida coincidirá con tu máquina virtual:

meta-data=/dev/nvme1n1           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 $DATA_DISK tiene un sistema de archivos XFS, puedes montarlo en tu punto de montaje ~/project/mydata. El comando mount requiere privilegios de sudo.

sudo mount "$DATA_DISK" ~/project/mydata

Para verificar que el sistema de archivos se ha montado correctamente, usa el comando df -h de nuevo. Deberías ver tu disco detectado listado con /home/labex/project/mydata como su punto de montaje.

df -h

Busca tu disco detectado en la salida:

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

Ahora, puedes crear archivos y directorios dentro de ~/project/mydata, y se almacenarán en el disco en $DATA_DISK. Creemos un archivo de prueba:

sudo touch ~/project/mydata/testfile.txt

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

ls -l ~/project/mydata

Deberías ver testfile.txt listado:

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

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

sudo umount ~/project/mydata

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

cd ~

Luego, intenta desmontar de nuevo:

sudo umount ~/project/mydata

Después de desmontar, verifica que tu disco detectado ya no esté montado comprobando df -h de nuevo.

df -h

Ya no deberías ver tu disco detectado montado en /home/labex/project/mydata.

Filesystem      Size  Used Avail Use% Mounted on
...
## Tu disco adicional ya no debería aparecer aquí.

Esto completa el proceso de montar y desmontar manualmente un sistema de archivos.

Localizar archivos por nombre con locate y find

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

Usar el comando locate

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

En esta imagen, el comando locate ya está disponible. Confirma que el comando existe antes de actualizar su base de datos.

command -v locate

Deberías ver una salida similar a esta:

/usr/bin/locate

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

sudo updatedb

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

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

locate passwd

Verás 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 distinga entre mayúsculas y minúsculas, usa la opción -i. Busquemos archivos que contengan "messages" sin preocuparnos por las mayúsculas.

locate -i messages

Verás 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 puedes limitar el número de resultados usando la opción -n. Busquemos las primeras 5 ocurrencias 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

Usar 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 encuentre todos los archivos que coinciden con tus 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 [ruta] [expresión]. 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ías ver la ruta al archivo de configuración:

/etc/ssh/sshd_config

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

find ~/project -name '*.txt'

Si creaste file1.txt, file2.txt y file3.txt en el paso anterior, deberías 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 distinga entre mayúsculas y minúsculas con find, usa la opción -iname. Busquemos archivos que contengan "README" (sin distinguir mayúsculas/minúsculas) en el directorio /usr/share/doc.

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

Verás 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, que explorarás en los siguientes pasos.

Antes de continuar, guarda los resultados clave de locate y find para que puedas compararlos más tarde.

{
  locate -n 5 passwd
  echo "---"
  find ~/project -name '*.txt'
} > ~/project/search-results.txt

Puedes revisar los resultados guardados con:

cat ~/project/search-results.txt

Encontrar archivos por propietario, permisos, tamaño y tiempo

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

Encontrar archivos por propietario

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

Busquemos todos los archivos en tu directorio personal (~) que sean propiedad del usuario labex.

find ~ -user labex

Esto listará muchos archivos, incluidos tus 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 suele ser el grupo principal para el usuario labex.

También puedes buscar por ID de usuario (UID) o ID de grupo (GID). El usuario labex suele tener un UID y GID de 1000.

find ~ -uid 1000
find ~ -gid 1000

Encontrar archivos por permisos

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

Creemos un archivo de prueba en tu 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ías ver permission_test.txt listado:

/home/labex/project/permission_test.txt

También puedes usar una / o - inicial con los permisos octales:

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

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

find ~/project -perm -004

Esto listará 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 te permite buscar archivos basándote en su tamaño. Puedes especificar el tamaño con unidades (ej. k para kilobytes, M para megabytes, G para gigabytes). También puedes usar + para "mayor que" y - para "menor que".

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

find ~/project/test_data -size 1k

Deberías ver file1.txt:

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

Ahora, busca 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

Puedes buscar archivos basándote en su tiempo de modificación usando opciones como -mmin (modificado hace minutos) o -mtime (modificado hace días).

Busquemos archivos en tu directorio ~/project que fueron modificados en los últimos 60 minutos.

find ~/project -mmin -60

Esto probablemente incluirá permission_test.txt y los archivos en test_data si los creaste 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), puedes usar +1 con -mtime.

find ~/project -mtime +1

Este comando podría no devolver ningún archivo si todos tus archivos de ~/project fueron creados o modificados recientemente.

Estas opciones se pueden combinar para crear consultas de búsqueda muy específicas, permitiéndote gestionar archivos en tu sistema de manera eficiente.

Guarda dos de tus resultados de búsqueda para que la siguiente verificación pueda confirmar que se encontraron los archivos correctos.

find ~/project -perm 644 > ~/project/find-perm-results.txt
find ~/project/test_data -size +5k > ~/project/find-size-results.txt

Buscar archivos según el tipo de archivo

En este paso final, aprenderás a usar el comando find para buscar archivos según su tipo. Esto es particularmente útil cuando necesitas 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 archivo comunes que puedes buscar:

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

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

find ~/project -type d

Deberías ver una salida similar a esta, listando todos los directorios y subdirectorios:

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

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

find ~/project -type f

Esto listará archivos como file1.txt, file2.txt y file3.txt que creaste 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 enlaces simbólicos. Crearemos un enlace simbólico a file1.txt en tu directorio ~/project.

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

Verifica que el enlace simbólico se creó usando ls -l:

ls -l ~/project/link_to_file1.txt

Deberías ver una salida indicando 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, busca todos los enlaces simbólicos dentro de tu directorio ~/project.

find ~/project -type l

Deberías ver tu enlace simbólico recién creado:

/home/labex/project/link_to_file1.txt

Finalmente, busquemos dispositivos de bloque. Los dispositivos de bloque se encuentran normalmente en el directorio /dev.

find /dev -type b

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

/dev/nvme0n1
/dev/nvme0n1p1
/dev/nvme0n1p2
/dev/nvme0n1p3
/dev/nvme1n1

Puedes combinar la opción -type con otras opciones de find que aprendiste 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...

Guarda los resultados de la búsqueda de enlaces simbólicos antes de terminar el laboratorio.

find ~/project -type l > ~/project/find-type-results.txt

Esto concluye el laboratorio sobre el acceso a sistemas de archivos Linux y la localización de archivos. Has aprendido a identificar dispositivos, examinar el uso del disco, montar y desmontar manualmente sistemas de archivos, y usar locate y find con diversos 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 usando comandos como lsblk, comprendiendo conceptos centrales como dispositivos de bloque, particiones, sistemas de archivos y puntos de montaje. 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 accesible el contenido del sistema de archivos y luego separarlo.

Además, profundizamos en la localización eficiente de archivos utilizando diversos 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 atributos de propietario, permisos, tamaño y tiempo, proporcionando herramientas poderosas para la administración del sistema y la resolución de problemas. Finalmente, practicamos la búsqueda de archivos basándonos en sus tipos de archivo específicos, completando una visión general integral de la gestión del sistema de archivos y las técnicas de localización de archivos.