Início·Comandos de terminal

find

Arquivos e diretórios

Uso

find [path] -name '[pattern]' -type f

Percorre a árvore testando cada entrada; ponha o padrão entre aspas como -name '*.log', senão o shell o expande antes de find ver.

Opções comuns

OpçãoSignificado
-nameMatch the file name, case sensitive; -iname ignores case
-typeRestrict to f (file), d (directory) or l (symlink)
-sizeFilter by size, as in -size +100M
-mtimeFilter by age in days, as in -mtime +7
-maxdepthLimit how deep to walk; GNU wants it before the tests
-deleteDelete every match, no confirmation
-execRun a command on each hit, ending with \; or +
-print0Separate results with NUL, to pair with xargs -0

Exemplos

find . -name '*.log' -mtime +7 -delete

Deletes log files older than a week.

find / -type f -size +1G 2>/dev/null

Finds files over a gigabyte, hiding permission errors.

find . -name '*.jpg' -exec mv {} photos/ +

Moves every JPEG it finds.

Mover, apagar e encontrar. Alguns não perguntam duas vezes, e é por isso que -i vira hábito.

Como ler

  • Os colchetes [ ] marcam uma parte que você pode omitir.
  • As reticências … indicam que você pode listar vários.
  • As opções diferenciam maiúsculas: em alguns comandos -r e -R fazem coisas diferentes.

Perguntas

Q. O que find faz?

Percorre a árvore testando cada entrada; ponha o padrão entre aspas como -name '*.log', senão o shell o expande antes de find ver.

Q. Como se digita?

find [path] -name '[pattern]' -type f — os colchetes marcam o que você pode omitir.

Q. Quantas opções vale a pena saber?

Aqui estão 8; a lista completa está em man find. Este comando fica em Arquivos e diretórios.

Comandos relacionados

página man: man find