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.