find

find [caminho] [expressão]

onde:

Opções

-daystart : medem o tempo (para -amin, -atime, -cmin, -ctime, -mmin, e -mtime) do início do dia ou de até 24 horas atrás.

-depth : processa o conteúdo de cada diretório antes do diretório em si.

-follow : resolve as ligações simbólicas. Tem ligação com a opção -noleaf.

-help, --help : imprime um resumo do uso das linhas de comando de find e finaliza.

-maxdepth n : desce no máximo em n níveis (um inteiro não negativo) de diretórios sob os argumentos da linha de comando. A opção -maxdepth 0 significa a aplicação dos testes e ações somente nos argumentos da linha de comandos.

-mindepth n : não aplica qualquer teste ou ação a níveis menores que n níveis (um inteiro não negativo). A opção -mindepth 1 significa testar todos os arquivos exceto os argumentos da linha de comandos.

-mount : não descer em diretórios de outros sistemas de arquivos. É um nome alternativo para a opção -xdev.

-noleaf : não otimizar ao assumir que um diretório contém 2 entradas a menos que as ligações simbólicas para ele definidas. Esta otimização não é aplicável quando a pesquisa de sistemas de arquivos se dá em sistemas que não seguem uma convenção Unix. Cada diretório em um sistema de arquivos tem no mínimo 2 ligações diretas: seu nome e sua entrada `.'. Adicionalmente, seus subdiretórios (caso existam) tem cada um uma ligação de entrada `..' para aquele diretório. Quando find está examinando um diretório, após considerar 2 entradas a menos do que os contadores de ligações apontem, ele sabe que o restante das entradas no diretório não são outros diretórios (e sim arquivos folha na árvore de diretórios). Se somente os nomes de arquivos necessitam ser examinados, não há necessidade de examinar os diretórios; obtendo-se assim um incremento na velocidade de pesquisa.

-version, --version : lista o número da versão do comando find e finaliza.

-xdev : não desce diretórios em outros sistema de arquivos.

Testes

Argumentos numéricos podem ser:

-amin n : arquivo foi acessado há n minutos.

-anewer arq : arquivo foi acessado mais recentemente do que arq tenha sido modificado. O teste -anewer é afetado pela opção -follow somente se -follow vir antes que -anewer na linha de comandos.

-atime num : procura por arquivos acessados há num dias.

-cmin n : o status do arquivo foi alterado em até n minutos atrás.

-cnewer arq : o status do arquivo foi alterado mais recentemente do que arq foi modificado. O teste -cnewer é afetado pela opção -follow somente se -follow vir antes que -cnewer na linha de comando.

-ctime n : o status do arquivo foi mudado nos últimos n dias.

-empty : o arquivo está vazio e é ou um arquivo regular ou um diretório.

-false : sempre falso.

-fstype tp : arquivo está em um sistema de arquivos do tipo tp. Pode-se usar a opção -printf com diretivas %F para ver os tipos dos sistemas de arquivos.

-gid n : o GID (Group Identification) do arquivo é n.

-group gname : arquivo pertence ao grupo gname (pode-se também usar aqui o GID do grupo).

-ilname pattern : semelhante ao teste -lname, mas neste caso o teste é sensível a maiúsculas e minúsculas.

-iname pattern : semelhante ao teste -name, mas neste caso o teste não é sensível a maiúsculas e minúsculas.

-inum n : procura por arquivo com inode n.

-ipath pattern : semelhante ao teste -path, mas neste caso o teste não é sensível a maiúsculas e minúsculas.

-iregex pattern : semelhante ao teste -regex, mas neste caso o teste não é sensível a maiúsculas e minúsculas.

-links n : arquivo tem n ligações.

-lname padrão : arquivo é uma ligação simbólica cujos conteúdos coincidem com o padrão de ambiente shell padrão. Os metacaracteres não tratam `/' ou `.' de forma especial.

-mmin n : os dados dos arquivos foram modificados há n minutos.

-mtime n : os dados foram modificados em até n dias atrás.

-name arquivo : procura pelo arquivo especificado. O nome do arquivo (o caminho à frente do nome do arquivo não é considerado) deve coincidir com os padrões informados. Os metacaracteres (`*', `?', e `[]') não combinam com um `.' no início no nome do arquivo. Para ignorar um diretório e os arquivos nele contidos, deve-se usar a ação -prune.

-newer arq : o arquivo foi modificado mais recentemente que arq. O teste -newer é afetado pela opção -follow somente se -follow vem antes de -newer na linha de comando.

-nouser : nenhum usuário corresponde ao ID numérico do usuário dono do arquivo.

-nogroup : nenhum grupo corresponde ao ID numérico do grupo dono do arquivo.

-path padrão : nome do arquivo combina com os padrões especificados em padrão. Os metacaracteres não tratam `/' ou `.' de forma especial. Use a ação -prune para ignorar o diretório especificado por padrão e todos os seus subdiretórios.

-perm valor : arquivos que possuem os bits de permissão exatamente iguais a valor (octal ou simbólico).

-perm -valor : arquivos que possuem todos os bits de permissão definidos em valor (octal ou simbólico).

-perm +valor : arquivos que possuem qualquer bit de permissão definido em valor (octal ou simbólico).

-regex padrão : arquivos que combinem com a expressão regular em padrão. Isto é uma combinação com todo o caminho, e não somente uma pesquisa.

-size n[bckw] : procura por arquivos que tem n unidades de espaço. Ao usar + (-) antes de n procura-se por um arquivo maior (menor) que n. As unidades são

-true : sempre verdadeiro.

-type tipo : procura arquivos de um determinado tipo. São tipos possíveis

-uid n : o UID do dono do arquivo é igual a n.

-used n : arquivo foi acessado n dias após a última alteração de seu status.

-user nome : arquivo pertence ao usuário especificado em nome (pode-se também usar aqui o UID do dono).

-xtype tp : semelhante a opção -type a menos que o arquivo seja uma ligação simbólica. Neste caso, se a opção -follow não foi informada, será verdadeiro se tp for igual a l. Ou seja, para ligações simbólicas -xtype checa o tipo de arquivo, ação que -type não executa.

Ações

-exec comando : executar comando; verdadeiro se o status de saída zero for retornado. Todos os argumentos para find serão considerados como argumentos do comando até que um argumento consistido por `;' seja encontrado. Os caracteres `{}' são substituídos pelo nome do arquivo que está sendo processado aonde que ele ocorra nos argumentos do comando, e não somente em argumentos onde esteja sozinho, como em algumas versões do find. Ambas as construções podem necessitar de um caractere de saída (como um `\') ou citados para protegê-los da expansão pelo ambiente de trabalho. O comando é executado no diretório inicial.

-fls arq : verdadeiro; semelhante a ação -ls mas grava o resultado em arq de forma similar a ação -fprint.

-fprint arq : verdadeiro; lista o nome completo em um arquivo arq. Caso arq não exista quando find está sendo executado, ele será criado; caso ele exista, será recriado sem conteúdo. Os arquivos de nome /dev/stdout e /dev/stderr são tratados de forma especial; eles são a referência à saída padrão e a saída de erros padrão, respectivamente.

-fprint0 arq : verdadeiro; similar a ação -print0 mas grava em arq como a ação -fprint.

-fprintf arq formato : verdadeiro; similar a ação -printf mas grava em arq como a ação -fprint.

-ok command : similar a -exec porém apresenta uma pergunta ao usuário na entrada padrão, e se a resposta não começar com `y' ou `Y', não executa o comando e retorna falso.

-print : verdadeiro; imprime o nome completo do arquivo na saída padrão, seguido de nova linha.

-print0 : verdadeiro; lista o nome completo do arquivo na saída padrão, seguido de um caractere nulo. Isso permite que um arquivo cujo nome contenha o caractere de nova linha seja corretamente interpretado pelos programas que processem a saída do comando find.

-printf formato : verdadeiro; lista formato na saída padrão, interpretando `\' como caractere de fuga e `%' como diretivas. Largura de campos e precisão podem ser especificadas de forma similar à função printf() da linguagem C. Diferentemente de -print, -printf não adiciona um caractere de nova linha ao final da cadeia de caracteres. Um caractere `\' seguido por outro é tratado como um caractere comum, sendo que ambos serão impressos. Um caractere `%' seguido por qualquer outro caractere será descartado (mas o outro caractere será impresso). O caractere de fuga e as diretivas são:

Operadores

Listados em ordem de precedência decrescente:

Exemplos
Observações

O uso do comando find, sem argumentos, faz com seja exibida a lista de todos os arquivos que ficam hierarquicamente abaixo do diretório corrente.