Acessando Sistemas de Arquivos no Red Hat Enterprise Linux

Red Hat Enterprise LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você obterá experiência prática no gerenciamento de sistemas de arquivos Linux em um sistema Red Hat Enterprise Linux (RHEL). Você aprenderá a identificar sistemas de arquivos e dispositivos de bloco, examinar o uso do disco usando df e du, e praticar a montagem e desmontagem manual de sistemas de arquivos.

Além disso, este laboratório irá guiá-lo através da localização eficiente de arquivos usando comandos como locate e find, permitindo que você pesquise arquivos com base em vários critérios, como nome, propriedade, permissões, tamanho, tempo e tipo de arquivo.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 95%. Recebeu uma taxa de avaliações positivas de 99% dos estudantes.

Identificar Sistemas de Arquivos e Dispositivos de Bloco

Nesta etapa, você aprenderá como identificar sistemas de arquivos e dispositivos de bloco em um sistema Red Hat Enterprise Linux. Compreender como o armazenamento é organizado é fundamental para a administração do sistema. Exploraremos vários comandos para listar e examinar dispositivos de bloco e seus sistemas de arquivos associados.

Primeiramente, vamos entender alguns conceitos básicos:

  • Dispositivo de Bloco (Block Device): Um dispositivo de bloco é um arquivo que fornece acesso de baixo nível a dispositivos de armazenamento. Exemplos incluem discos rígidos, SSDs e unidades USB. No Linux, eles são tipicamente encontrados no diretório /dev.
  • Partição (Partition): Uma partição é uma divisão lógica de um dispositivo de armazenamento físico. Um único disco rígido pode ter várias partições, cada uma formatada com um sistema de arquivos diferente ou usada para diferentes propósitos.
  • Sistema de Arquivos (File System): Um sistema de arquivos é um método e uma estrutura de dados que um sistema operacional usa para controlar como os dados são armazenados e recuperados. Ele organiza os dados em arquivos e diretórios. Sistemas de arquivos Linux comuns incluem XFS e ext4.
  • Ponto de Montagem (Mount Point): Um ponto de montagem é um diretório vazio na hierarquia do sistema de arquivos onde um sistema de arquivos é anexado ou "montado" para tornar seu conteúdo acessível.

Vamos começar listando os dispositivos de bloco disponíveis em seu sistema usando o comando lsblk. Este comando fornece uma visão geral em árvore de todos os dispositivos de bloco e suas partições.

lsblk

Você deve ver uma saída semelhante a esta, mostrando dispositivos como vda, vdb, etc., que representam dispositivos de disco virtual em seu ambiente de contêiner:

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

Na saída:

  • NAME: O nome do dispositivo de bloco (por exemplo, vda, vdb) ou partição (por exemplo, vda1, vda2).
  • MAJ:MIN: Números de dispositivo principal e secundário.
  • RM: Dispositivo removível (1 se removível, 0 se não).
  • SIZE: O tamanho do dispositivo ou partição.
  • RO: Somente leitura (1 se somente leitura, 0 se não).
  • TYPE: Tipo do dispositivo (por exemplo, disk, part para partição).
  • MOUNTPOINTS: Onde o dispositivo ou partição está atualmente montado.

Em seguida, vamos examinar os sistemas de arquivos e seu uso com o comando df. O comando df relata o uso do espaço em disco do sistema de arquivos.

df

A saída mostrará vários sistemas de arquivos, seu tamanho total, espaço usado, espaço disponível e pontos de montagem:

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 tornar a saída mais legível, especialmente para tamanhos, você pode usar a opção -h para formato legível por humanos (por exemplo, M para MiB, G para GiB).

df -h

Você verá os tamanhos em um formato mais compreensível:

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, vamos usar o comando lsblk -fp para listar o caminho completo dos dispositivos, seus UUIDs (Identificadores Exclusivos Universais) e tipos de sistema de arquivos. UUIDs são identificadores estáveis que permanecem os mesmos, mesmo que os nomes dos dispositivos mudem, tornando-os úteis para montagem consistente.

lsblk -fp

A saída incluirá UUIDs e tipos de sistema de arquivos:

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 a coluna UUID, que fornece um identificador exclusivo para cada sistema de arquivos. Isso é crucial para montar sistemas de arquivos de forma confiável, especialmente em arquivos de configuração como /etc/fstab.

Examinar o Uso do Sistema de Arquivos com df e du

Nesta etapa, você se aprofundará no exame do uso do sistema de arquivos usando os comandos df e du. Enquanto df fornece uma visão geral do uso do espaço em disco para sistemas de arquivos montados, du (disk usage - uso do disco) é usado para estimar o uso do espaço em arquivos para arquivos ou diretórios específicos. Compreender a diferença e quando usar cada comando é crucial para o gerenciamento eficaz do espaço em disco.

Vamos começar revisando o comando df com sua opção legível por humanos. Este comando é excelente para obter um resumo rápido de quanto espaço é usado e disponível em todos os sistemas de arquivos montados.

df -h

A saída mostrará o uso do disco em um formato fácil de ler (por exemplo, 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

Agora, vamos explorar o comando du. Ao contrário de df, du calcula o espaço em disco usado por arquivos e diretórios dentro de um caminho especificado. Isso é particularmente útil quando você deseja descobrir quais diretórios ou arquivos estão consumindo mais espaço.

Para ver o uso do disco do seu diretório atual (~/project), use du sem nenhum argumento. Isso listará o tamanho de cada arquivo e subdiretório dentro de ~/project.

du

A saída pode ser extensa, mostrando os tamanhos em kilobytes por padrão:

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 tornar a saída mais legível, semelhante a df -h, você pode usar a opção -h com du.

du -h

Isso exibirá os tamanhos em unidades legíveis 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     .

Frequentemente, você está interessado no tamanho total de um diretório, em vez do tamanho de cada arquivo e subdiretório individual. Para isso, você pode usar a opção -s (summary - resumo) junto com -h. Vamos verificar o tamanho total do seu diretório home (~).

du -sh ~

Este comando exibirá o tamanho total do seu diretório home:

48K     /home/labex

Vamos criar alguns arquivos para ver como du relata seus tamanhos. Criaremos um diretório chamado test_data e, em seguida, criaremos alguns arquivos dentro dele.

Primeiro, crie o diretório:

mkdir ~/project/test_data

Agora, navegue para o diretório test_data:

cd ~/project/test_data

Em seguida, crie alguns arquivos com algum conteúdo. Usaremos o comando head para gerar arquivos de tamanhos específicos.

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

Agora, use du -h para ver os tamanhos desses novos arquivos e do diretório test_data.

du -h

Você deve ver uma saída semelhante a esta:

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

A última linha (24K .) mostra o tamanho total do diretório atual (., que é ~/project/test_data).

Finalmente, vamos voltar para o seu diretório ~/project e verificar o tamanho total de test_data usando du -sh.

cd ~/project
du -sh test_data

Isso mostrará o tamanho resumido do diretório test_data:

24K     test_data

Isso demonstra como du pode ser usado para identificar o consumo de espaço em disco dentro de diretórios específicos, ajudando você a gerenciar o armazenamento de forma eficaz.

Montar e Desmontar Sistemas de Arquivos Manualmente

Nesta etapa, você aprenderá como montar e desmontar sistemas de arquivos manualmente. Montar um sistema de arquivos torna seu conteúdo acessível através de um diretório específico (ponto de montagem) na hierarquia do sistema de arquivos. Desmontar desanexa o sistema de arquivos de seu ponto de montagem, tornando seu conteúdo inacessível até que seja montado novamente. Esta é uma habilidade crítica para gerenciar mídia removível, armazenamento temporário ou novas partições de disco.

Para este exercício, usaremos um dos dispositivos de bloco não montados disponíveis no seu ambiente de VM LabEx. Da etapa anterior, você deve ter visto o dispositivo /dev/vdb que não está atualmente montado. Usaremos /dev/vdb para esta etapa.

Primeiro, vamos confirmar os dispositivos de bloco não montados disponíveis usando lsblk.

lsblk

Você deve ver /dev/vdb listado sem nenhum ponto de montagem.

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 um sistema de arquivos, você precisa de um ponto de montagem, que é um diretório vazio. É prática comum usar /mnt para montagens temporárias ou criar um subdiretório dentro dele. Vamos criar um novo diretório chamado mydata dentro do seu diretório ~/project para servir como nosso ponto de montagem.

mkdir ~/project/mydata

Agora, precisamos formatar o dispositivo /dev/vdb com um sistema de arquivos. Usaremos o sistema de arquivos XFS, que é o padrão para Red Hat Enterprise Linux. Tenha cuidado com este comando, pois ele apagará todos os dados no dispositivo especificado.

sudo mkfs.xfs /dev/vdb

Você verá uma saída indicando a criação do sistema de arquivos 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

Agora que /dev/vdb tem um sistema de arquivos XFS, você pode montá-lo em seu ponto de montagem ~/project/mydata. O comando mount requer privilégios sudo.

sudo mount /dev/vdb ~/project/mydata

Para verificar se o sistema de arquivos foi montado com sucesso, use o comando df -h novamente. Você deve ver /dev/vdb listado com /home/labex/project/mydata como seu ponto de montagem.

df -h

Procure por /dev/vdb na saída:

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

Agora, você pode criar arquivos e diretórios dentro de ~/project/mydata, e eles serão armazenados no dispositivo /dev/vdb. Vamos criar um arquivo de teste:

sudo touch ~/project/mydata/testfile.txt

Você pode listar o conteúdo de ~/project/mydata para confirmar a criação do arquivo:

ls -l ~/project/mydata

Você deve ver testfile.txt listado:

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

Quando você terminar de usar um sistema de arquivos montado, é importante desmontá-lo para evitar a corrupção de dados, especialmente antes de remover um dispositivo físico. Use o comando umount para desmontar o sistema de arquivos.

sudo umount ~/project/mydata

Se o comando de desmontagem falhar com o erro "target is busy" (destino ocupado), significa que algum processo ainda está acessando o ponto de montagem. Isso geralmente acontece se seu diretório de trabalho atual estiver dentro do sistema de arquivos montado. Para resolver isso, altere seu diretório atual para um local fora do ponto de montagem, por exemplo, seu diretório home (~).

cd ~

Em seguida, tente desmontar novamente:

sudo umount ~/project/mydata

Após a desmontagem, verifique se /dev/vdb não está mais montado, verificando df -h novamente.

df -h

Você não deve mais ver /dev/vdb montado em /home/labex/project/mydata.

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

Isso completa o processo de montagem e desmontagem manual de um sistema de arquivos.

Localizar Arquivos por Nome com locate e find

Nesta etapa, você aprenderá como localizar arquivos em seu sistema usando dois comandos poderosos: locate e find. Ambos os comandos ajudam você a pesquisar arquivos, mas operam de maneira diferente e são adequados para diferentes cenários.

Usando o comando locate

O comando locate é muito rápido porque pesquisa em um banco de dados pré-construído de nomes e caminhos de arquivos. No entanto, isso significa que ele pode não encontrar arquivos que foram criados ou excluídos desde a última atualização do banco de dados. O banco de dados é normalmente atualizado diariamente por um job cron, mas você pode forçar uma atualização.

Primeiro, vamos garantir que o pacote mlocate, que fornece o comando locate, esteja instalado.

sudo dnf install -y mlocate

Você verá uma saída semelhante a esta durante a instalação:

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!

Após a instalação, você precisa atualizar o banco de dados locate. Este comando requer privilégios sudo.

sudo updatedb

Este comando será executado silenciosamente e pode levar alguns instantes, dependendo do tamanho do seu sistema de arquivos.

Agora, vamos pesquisar um arquivo comum do sistema, como passwd.

locate passwd

Você verá uma lista de caminhos contendo "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 uma pesquisa que não diferencia maiúsculas e minúsculas, use a opção -i. Vamos pesquisar arquivos contendo "messages" sem nos preocuparmos com a capitalização.

locate -i messages

Você 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...

Você também pode limitar o número de resultados usando a opção -n. Vamos encontrar as primeiras 5 ocorrências de "passwd".

locate -n 5 passwd

Isso mostrará apenas as primeiras 5 correspondências:

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

Usando o comando find

O comando find pesquisa o sistema de arquivos em tempo real, o que o torna mais lento que locate, mas garante que ele encontre todos os arquivos que correspondem aos seus critérios, incluindo aqueles criados muito recentemente. Ele também oferece opções de pesquisa muito mais poderosas.

A sintaxe básica para find é find [path] [expression]. Se nenhum caminho for especificado, ele pesquisa o diretório atual.

Vamos pesquisar o arquivo sshd_config começando no diretório raiz (/).

find / -name sshd_config

Você deve ver o caminho para o arquivo de configuração:

/etc/ssh/sshd_config

Ao pesquisar nomes parciais ou usar curingas, é importante colocar o padrão do nome do arquivo entre aspas para evitar que o shell o expanda prematuramente. Vamos encontrar todos os arquivos terminando com .txt no seu diretório ~/project.

find ~/project -name '*.txt'

Se você criou file1.txt, file2.txt e file3.txt na etapa anterior, você deve vê-los listados:

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

Para realizar uma pesquisa que não diferencia maiúsculas e minúsculas com find, use a opção -iname. Vamos pesquisar arquivos contendo "README" (sem distinção entre maiúsculas e minúsculas) no diretório /usr/share/doc.

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

Você verá muitos resultados, por exemplo:

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

O comando find é muito versátil e pode ser combinado com outros critérios, que você explorará nas próximas etapas.

Encontrar Arquivos por Proprietário, Permissões, Tamanho e Tempo

Nesta etapa, você aprenderá como usar o poderoso comando find para localizar arquivos com base em vários critérios além de apenas seus nomes. Isso inclui pesquisar por propriedade, permissões, tamanho e tempo de modificação. Essas capacidades de pesquisa avançadas são essenciais para tarefas de administração do sistema, como auditoria, limpeza e solução de problemas.

Encontrar Arquivos por Propriedade

Você pode pesquisar arquivos de propriedade de um usuário ou grupo específico usando as opções -user e -group, respectivamente. Você pode especificar o nome do usuário/grupo ou seu ID numérico.

Vamos encontrar todos os arquivos em seu diretório home (~) que são de propriedade do usuário labex.

find ~ -user labex

Isso listará muitos arquivos, incluindo seus arquivos de configuração:

/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...

Da mesma forma, para encontrar arquivos de propriedade do grupo labex:

find ~ -group labex

A saída será semelhante, pois labex é normalmente o grupo primário para o usuário labex.

Você também pode pesquisar por ID de Usuário (UID) ou ID de Grupo (GID). O usuário labex normalmente tem um UID e GID de 1000.

find ~ -uid 1000
find ~ -gid 1000

Encontrar Arquivos por Permissões

A opção -perm do comando find permite que você pesquise arquivos com permissões específicas. As permissões podem ser especificadas no modo octal (por exemplo, 755) ou simbólico (por exemplo, u=rwx,g=rx,o=rx).

Vamos criar um arquivo de teste em seu diretório ~/project com permissões específicas.

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

Agora, vamos encontrar arquivos em ~/project que tenham exatamente as permissões 644.

find ~/project -perm 644

Você deve ver permission_test.txt listado:

/home/labex/project/permission_test.txt

Você também pode usar um / ou - inicial com as permissões octais:

  • /: Corresponde se algum dos bits de permissão especificados estiver definido.
  • -: Corresponde se todos os bits de permissão especificados estiverem definidos.

Vamos encontrar arquivos em ~/project onde outros tenham pelo menos permissão de leitura (o=r ou 004).

find ~/project -perm -004

Isso listará permission_test.txt e outros arquivos que concedem acesso de leitura a outros.

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

Encontrar Arquivos por Tamanho

A opção -size permite que você pesquise arquivos com base em seu tamanho. Você pode especificar o tamanho com unidades (por exemplo, k para kilobytes, M para megabytes, G para gigabytes). Você também pode usar + para "maior que" e - para "menor que".

Vamos encontrar arquivos em seu diretório ~/project/test_data que tenham exatamente 1 kilobyte de tamanho.

find ~/project/test_data -size 1k

Você deve ver file1.txt:

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

Agora, encontre arquivos maiores que 5 kilobytes.

find ~/project/test_data -size +5k

Isso deve listar file3.txt:

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

E arquivos menores que 10 kilobytes.

find ~/project/test_data -size -10k

Isso deve listar file1.txt e file2.txt:

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

Encontrar Arquivos por Tempo de Modificação

Você pode pesquisar arquivos com base em seu tempo de modificação usando opções como -mmin (modificado há minutos) ou -mtime (modificado há dias).

Vamos encontrar arquivos em seu diretório ~/project que foram modificados nos últimos 60 minutos.

find ~/project -mmin -60

Isso provavelmente incluirá permission_test.txt e os arquivos em test_data se você os criou recentemente:

/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 arquivos modificados há mais de 1 dia (24 horas), você pode usar +1 com -mtime.

find ~/project -mtime +1

Este comando pode não retornar nenhum arquivo se todos os seus arquivos ~/project foram criados ou modificados recentemente.

Essas opções podem ser combinadas para criar consultas de pesquisa muito específicas, permitindo que você gerencie arquivos em seu sistema de forma eficiente.

Pesquisar Arquivos com Base no Tipo de Arquivo

Nesta etapa final, você aprenderá como usar o comando find para pesquisar arquivos com base em seu tipo. Isso é particularmente útil quando você precisa localizar todos os diretórios, arquivos regulares, links simbólicos ou arquivos de dispositivo dentro de um caminho específico.

O comando find usa a opção -type seguida por um único caractere para especificar o tipo de arquivo. Aqui estão alguns tipos de arquivo comuns que você pode pesquisar:

  • f: Arquivo regular
  • d: Diretório
  • l: Link simbólico (symlink)
  • b: Dispositivo de bloco
  • c: Dispositivo de caractere
  • p: Pipe nomeado (FIFO)
  • s: Socket

Vamos começar pesquisando todos os diretórios dentro do seu diretório ~/project.

find ~/project -type d

Você deve ver uma saída semelhante a esta, listando todos os diretórios e subdiretórios:

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

Em seguida, vamos pesquisar todos os arquivos regulares dentro do seu diretório ~/project.

find ~/project -type f

Isso listará arquivos como file1.txt, file2.txt e file3.txt que você criou anteriormente:

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

Agora, vamos criar um link simbólico para demonstrar a pesquisa de symlinks. Criaremos um symlink para file1.txt em seu diretório ~/project.

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

Verifique se o symlink foi criado usando ls -l:

ls -l ~/project/link_to_file1.txt

Você deve ver uma saída indicando que é um link 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

Agora, pesquise todos os links simbólicos dentro do seu diretório ~/project.

find ~/project -type l

Você deve ver seu symlink recém-criado:

/home/labex/project/link_to_file1.txt

Finalmente, vamos pesquisar dispositivos de bloco. Dispositivos de bloco são normalmente encontrados no diretório /dev.

find /dev -type b

Isso listará dispositivos de bloco como vda, vda1, vda2, etc.:

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

Você pode combinar a opção -type com outras opções find que você aprendeu nas etapas anteriores. Por exemplo, para encontrar todos os diretórios em /etc que são de propriedade do usuário root:

find /etc -type d -user root

Isso produzirá uma longa lista de diretórios:

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

Isso conclui o laboratório sobre como acessar sistemas de arquivos Linux e localizar arquivos. Você aprendeu como identificar dispositivos, examinar o uso do disco, montar e desmontar manualmente sistemas de arquivos e usar locate e find com vários critérios.

Resumo

Neste laboratório, ganhamos experiência prática no gerenciamento de sistemas de arquivos Linux em um sistema Red Hat Enterprise Linux. Começamos aprendendo a identificar sistemas de arquivos e dispositivos de bloco usando comandos como lsblk, compreendendo conceitos básicos como dispositivos de bloco, partições, sistemas de arquivos e pontos de montagem. Posteriormente, exploramos como examinar o uso do sistema de arquivos com df e du, distinguindo entre suas funcionalidades para relatar o espaço em disco. O laboratório também abordou a habilidade essencial de montar e desmontar manualmente sistemas de arquivos, demonstrando como tornar o conteúdo do sistema de arquivos acessível e, em seguida, removê-los.

Além disso, nos aprofundamos na localização eficiente de arquivos usando vários critérios. Aprendemos a encontrar arquivos por nome com locate e find, compreendendo as diferenças e os casos de uso apropriados para cada um. O laboratório estendeu isso ensinando como pesquisar arquivos com base em propriedade, permissões, tamanho e atributos de tempo, fornecendo ferramentas poderosas para administração e solução de problemas do sistema. Finalmente, praticamos a pesquisa de arquivos com base em seus tipos de arquivo específicos, completando uma visão geral abrangente do gerenciamento do sistema de arquivos e das técnicas de localização de arquivos.