Find
Diferente do comando “ls”, que apenas lista o conteúdo, o “find” realiza uma busca por arquivos e diretórios. Existem algumas funcionalidades bastante úteis como fazer buscas com datas ou parte dos nomes dos arquivos.
Existem parâmetros para isso “atime” que especifica dias e “amin” que especifica mínutos, ambos contados do último acesso, existe também o “ctime” e “cmin” que leva em consideração a última alteração do arquivos.
Buscas simples
Pelo nome do arquivo ou diretório
$ find / -name *.txt
esse comando irá buscar todos os arquivos com extensão “txt”, onde “/” é o local a partir do qual a busca será realizado.
Somente os diretórios
A linha abaixo busca e exibe somente os diretórios:
$ find . -type d
o “.” diz que o diretório inicial é o diretório atual.
Somente os arquivos
A linha abaixo busca e exibe somente os arquivos:
$ find . -type f
Buscas baseadas em data
Existem alguns parâmetros uteis para buscas com datas: o “atime” que especifica dias e o “amin” que especifica mínutos, ambos contados do último acesso. O “ctime” e “cmin” que leva em consideração a última alteração do arquivos. Os valores são descritos abaixo:
- +N: mais de N dias ou minutos;
- N: entre N e N+1 dias ou minutos;
- N: até N dias ou minutos.
Busca somente os modificados nas últimas 24 horas
Serão exibidos apenas os arquivos e diretórios criados ou modificados nas últimas 24 horas.
$ find . -type f
Busca somente os modificados nas últimos 10 minutos
Serão exibidos apenas os arquivos e diretórios criados ou modificados nas últimos 10 minutos.
$ find . -mmin -5
Busca somente hoje (a partir das 00:00h)
$ find . -daystart
Busca dos mais novos
$ find . -newer /usr/local/teste.log
mostra os arquivos, no diretório atual, que são mais novos “que teste.log”.
Alternativas complexas
Execução de um comando a partir do resultado da busca
$ find . -name *.pdf -exec ls -l {} \;
o parâmetro “-exec” informa a execução do comando.
Confirmação de execução de comando
A opção de execução de comando é possível solicitar um confirmação para a execução.
$ find . -name *.gif -ok rm {} \;
Nesse caso, o resultado da busca será excluído, mas para isso será solicitado confirmação para isso:
<rm ... . arquivo.gif > ?
Busca com exibição de lista
A opção é similar ao comando “ls -lR *.pdf”, exibindo-os de forma estendida:
$ find . -name *.pdf -exec ls -l {} \;
Copiar o resultado
$ find . | cpio -pdumv /<diretório-de-destino>
Nessa opção o resultado será copiado para o diretório de destino.