.\" -*- coding: UTF-8 -*- .\" -*- nroff -*- .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH FIND 1 '\" t .SH NOME find \- pesquisa por arquivos em uma hierarquia de diretórios .SH SINOPSE \fBfind\fP [\-H] [\-L] [\-P] [\-D opçõesdepuração] [\-Onível] [ponto\-de\-partida...\&] [expressão] . .SH DESCRIÇÃO Esta página de manual documenta a versão GNU do \fBfind\fP. O GNU \fBfind\fP pesquisa a árvore de diretórios enraizada em cada ponto de partida, avaliando a expressão dada da esquerda para a direita, de acordo com as regras de precedência (consulte a seção OPERADORES), até que o resultado seja conhecido (o lado esquerdo é falso para operações \fIe\fP, verdadeiro para \fIou\fP), nesse ponto \fBfind\fP passa para o próximo nome de arquivo. Se nenhum ponto de partida for especificado, `.\&' será assumido. .PP Se você estiver usando \fBfind\fP em um ambiente em que a segurança é importante (por exemplo, se você estiver usando\-o para pesquisar diretórios graváveis por outros usuários), leia o capítulo "Security Considerations" da documentação do findutils, que é chamado \fBFinding Files\fP e vem com o findutils. Esse documento também inclui muito mais detalhes e discussão do que esta página de manual, portanto, você pode encontrar uma fonte de informação mais útil. . .SH OPÇÕES As opções \fB\-H\fP, \fB\-L\fP e \fB\-P\fP controlam o tratamento de links simbólicos. Os argumentos da linha de comando a seguir são considerados nomes de arquivos ou diretórios a serem examinados, até o primeiro argumento que começa com "\-" ou o argumento "(" ou "!". Esse argumento e os argumentos a seguir são usados para ser a expressão que descreve o que deve ser pesquisado. Se nenhum caminho for fornecido, o diretório atual será usado. Se nenhuma expressão for fornecida, a expressão \fB\-print\fP será usada (mas você provavelmente deve considerar usar \fB\-print0\fP). .PP This manual page talks about `options' within the expression list. These options control the behaviour of \fBfind\fP but are specified immediately after the last path name. The five `real' options \fB\-H\fP, \fB\-L\fP, \fB\-P\fP, \fB\-D\fP and \fB\-O\fP must appear before the first path name, if at all. A double dash \fB\-\-\fP could theoretically be used to signal that any remaining arguments are not options, but this does not really work due to the way \fBfind\fP determines the end of the following path arguments: it does that by reading until an expression argument comes (which also starts with a `\-'). Now, if a path argument would start with a `\-', then \fBfind\fP would treat it as expression argument instead. Thus, to ensure that all start points are taken as such, and especially to prevent that wildcard patterns expanded by the calling shell are not mistakenly treated as expression arguments, it is generally safer to prefix wildcards or dubious path names with either `./' or to use absolute path names starting with '/'. Alternatively, it is generally safe though non\-portable to use the GNU option \fB\-files0\-from\fP to pass arbitrary starting points to \fBfind\fP. .IP \-P Nunca segue links simbólicos. Esse é o comportamento padrão. Quando \fBfind\fP examina ou imprime informações sobre um arquivo, e o arquivo é um link simbólico, as informações utilizadas devem ser obtidas das propriedades do próprio link simbólico. .IP \-L Segue os links simbólicos. Quando \fBfind\fP examina ou imprime informações sobre arquivos, as informações usadas devem ser obtidas das propriedades do arquivo para o qual o link aponta, não do próprio link (a menos que seja um link simbólico quebrado ou \fBfind\fP não possa para examinar o arquivo para o qual o link aponta). O uso dessa opção implica em \fB\-noleaf\fP. Se você em seguida usar a opção \fB\-P\fP, \fB\-noleaf\fP ainda estará em vigor. Se \fB\-L\fP estiver em vigor e \fBfind\fP descobrir um link simbólico para um subdiretório durante sua pesquisa, o subdiretório apontado pelo link simbólico será pesquisado. .IP Quando a opção \fB\-L\fP estiver em vigor, o predicado \fB\-type\fP sempre corresponderá ao tipo de arquivo ao qual um link simbólico aponta e não ao próprio link (a menos que o link simbólico esteja quebrado). Ações que podem causar quebra de links simbólicos enquanto \fBfind\fP está em execução (por exemplo, \fB\-delete\fP) podem gerar um comportamento confuso. O uso de \fB\-L\fP faz com que os predicados \fB\-lname\fP e \fB\-ilname\fP sempre retornem false. .IP \-H Não segue os links simbólicos, exceto durante o processamento dos argumentos da linha de comandos. Quando \fBfind\fP examina ou imprime informações sobre arquivos, as informações usadas devem ser obtidas das propriedades do próprio link simbólico. A única exceção a esse comportamento é quando um arquivo especificado na linha de comando é um link simbólico e o link pode ser resolvido. Para essa situação, as informações usadas são obtidas de qualquer ponto para o qual o link aponta (ou seja, o link é seguido). As informações sobre o próprio link são usadas como fallback se o arquivo apontado pelo link simbólico não puder ser examinado. Se \fB\-H\fP estiver em vigor e um dos caminhos especificados na linha de comando for um link simbólico para um diretório, o conteúdo desse diretório será examinado (embora, é claro, \fB\-maxdepth\ 0\fP evite isso). .P Se mais de uma opção de \fB\-H\fP, \fB\-L\fP e \fB\-P\fP for especificada, cada uma substituirá as outras; a última que aparece na linha de comando entra em vigor. Como é o padrão, a opção \fB\-P\fP deve ser considerada em vigor, a menos que \fB\-H\fP ou \fB\-L\fP sejam especificados. O GNU \fBfind\fP frequentemente estatísticas arquivos durante o processamento da própria linha de comando, antes de qualquer pesquisa ter começado. Essas opções também afetam como esses argumentos são processados. Especificamente, existem vários testes que comparam os arquivos listados na linha de comando com um arquivo que estamos considerando no momento. Em cada caso, o arquivo especificado na linha de comando será examinado e algumas de suas propriedades serão salvas. Se o arquivo nomeado é de fato um link simbólico e a opção \fB\-P\fP está em vigor (ou se \fB\-H\fP nem \fB\-L\fP foram especificados), as informações usadas para a comparação serão obtidas das propriedades do link simbólico. Caso contrário, ele será retirado das propriedades do arquivo para o qual o link aponta. Se \fBfind\fP não puder seguir o link (por exemplo, porque possui privilégios insuficientes ou o link aponta para um arquivo inexistente), as propriedades do próprio link serão usadas. .P Quando as opções \fB\-H\fP ou \fB\-L\fP estiverem em vigor, quaisquer links simbólicos listados como argumento de \fB\-newer\fP serão desreferenciados e o carimbo de data e hora será retirado do arquivo para o qual o link simbólico aponta. A mesma consideração se aplica a \fB\-newerXY\fP, \fB\-anewer\fP e \fB\-cnewer\fP. A opção \fB\-follow\fP tem um efeito semelhante a \fB\-L\fP, embora tenha efeito no ponto em que aparece (ou seja, se \fB\-L\fP não for usado, mas \fB\-follow\fP for, quaisquer links simbólicos que apareçam depois de \fB\-follow\fP na linha de comando serão desreferenciados, e aqueles antes dele não serão). .IP "\-D opções\-de\-depuração" Imprime informações de diagnóstico; isso pode ser útil para diagnosticar problemas com os motivos pelos quais \fBfind\fP não está fazendo o que você deseja. A lista de opções de depuração deve ser separada por vírgula. A compatibilidade das opções de depuração não é garantida entre os lançamentos do findutils. Para obter uma lista completa das opções de depuração válidas, consulte a saída de \fBfind \-D\ help\fP. Opções de depuração válidas incluem .RS .IP exec Mostra informações de diagnóstico relacionadas a \-exec, \-execdir, \-ok e \-okdir .IP opt Imprime informações de diagnóstico relacionadas à otimização da árvore de expressões; veja a opção \-O. .IP rates Imprime um resumo indicando com que frequência cada predicado teve êxito ou falhou. .IP search Navega na árvore de diretórios verbalmente. .IP stat As mensagens de impressão como arquivos são examinadas com as chamadas do sistema \fBstat\fP e \fBlstat\fP. O programa \fBfind\fP tenta minimizar essas chamadas. .IP tree Mostra a árvore de expressão em sua forma original e otimizada. .IP all Habilita todas as outras opções de depuração (exceto \fBhelp\fP). .IP help Explica as opções de depuração. .RE .IP \-Onível Habilita a otimização de consultas. O programa \fBfind\fP reordena os testes para acelerar a execução, preservando o efeito geral; isto é, predicados com efeitos colaterais não são reordenados em relação um ao outro. As otimizações executadas em cada nível de otimização são as seguintes. .RS .IP 0 Equivalente ao nível de otimização 1. .IP 1 Este é o nível de otimização padrão e corresponde ao comportamento tradicional. As expressões são reordenadas para que os testes baseados apenas nos nomes dos arquivos (por exemplo, \fB\-name\fP e \fB\-regex\fP) sejam executados primeiro. .IP 2 Todos os testes \fB\-type\fP ou \fB\-xtype\fP são executados após quaisquer testes baseados apenas nos nomes dos arquivos, mas antes de qualquer teste que exija informações do nó\-i. Em muitas versões modernas do Unix, os tipos de arquivo são retornados por \fBreaddir()\fP e, portanto, esses predicados são mais rápidos de avaliar do que os predicados que precisam declarar o arquivo primeiro. Se você usar o predicado com \fB\-fstype\ \fP\fIFOO\fP e especificar um sistema de arquivos tipo \fIFOO\fP que não seja conhecido (ou seja, presente em `/etc/mtab') no momento em que \fBfind\fP for iniciado, esse predicado é equivalente a \fB\-false\fP. .IP 3 Nesse nível de otimização, o otimizador de consultas completo baseado em custos está ativado. A ordem dos testes é modificada para que os testes baratos (ou seja, rápidos) sejam executados primeiro e os mais caros sejam realizados posteriormente, se necessário. Dentro de cada faixa de custo, os predicados são avaliados mais cedo ou mais tarde, de acordo com a probabilidade de êxito ou não. Para \fB\-o\fP, os predicados com probabilidade de êxito são avaliados anteriormente e para \fB\-a\fP, os predicados com probabilidade de falha são avaliados anteriormente. .RE .IP O otimizador baseado em custos tem uma ideia fixa da probabilidade de um determinado teste ser bem\-sucedido. Em alguns casos, a probabilidade leva em consideração a natureza específica do teste (por exemplo, presume\-se que \fB\-type\ f\fP seja mais provável que seja bem\-sucedido que \fB\-type\ c\fP) O otimizador baseado em custos está sendo avaliado no momento. Se, na verdade, não melhorar o desempenho de \fBfind\fP, ele será removido novamente. Por outro lado, otimizações que provam ser confiáveis, robustas e eficazes podem ser ativadas em níveis mais baixos de otimização ao longo do tempo. No entanto, o comportamento padrão (ou seja, nível de otimização 1) não será alterado na série de versões 4.3.x. O conjunto de testes do findutils executa todos os testes em \fBfind\fP em cada nível de otimização e garante que o resultado seja o mesmo. . .SH EXPRESSÃO A parte da linha de comando após a lista de pontos de partida é a \fIexpressão\fP. Esse é um tipo de especificação de consulta que descreve como correspondemos aos arquivos e o que fazemos com os arquivos correspondentes. Uma expressão é composta por uma sequência de coisas: .IP Testes Os testes retornam um valor verdadeiro ou falso, geralmente com base em alguma propriedade de um arquivo que estamos considerando. O teste \fB\-empty\fP, por exemplo, é verdadeiro apenas quando o arquivo atual está vazio. .IP Ações As ações têm efeitos colaterais (como imprimir algo na saída padrão) e retornam verdadeiro ou falso, geralmente com base no êxito ou não delas. A ação \fB\-print\fP, por exemplo, imprime o nome do arquivo atual na saída padrão. .IP "Opções globais" As opções globais afetam a operação de testes e ações especificados em qualquer parte da linha de comandos. As opções globais sempre retornam verdadeiras. A opção \fBprofundidade\fP, por exemplo, faz com que \fBfind\fP percorra o sistema de arquivos em uma ordem profunda. .IP "Opções posicionais" As opções posicionais afetam apenas testes ou ações que os seguem. As opções posicionais sempre retornam verdadeiras. A opção \fB\-regextype\fP, por exemplo, é posicional, especificando o dialeto da expressão regular para expressões regulares que ocorrem posteriormente na linha de comando. .IP Operadores Os operadores juntam os outros itens da expressão. Eles incluem, por exemplo, \fB\-o\fP (significando OU lógico) e \fB\-a\fP (significando E lógico). Onde um operador está ausente, \fB\-a\fP é presumido. .P A ação \fB\-print\fP é realizada em todos os arquivos para os quais toda a expressão é verdadeira, a menos que ela contenha uma ação além de \fB\-prune\fP ou \fB\-quit\fP. As ações que inibem o \fB\-print\fP padrão são \fB\-delete\fP, \fB\-exec\fP, \fB\-execdir\fP, \fB\-ok\fP, \fB\-okdir\fP, \fB\-fls\fP, \fB\-fprint\fP, \fB\-fprintf\fP, \fB\-ls\fP, \fB\-print\fP e \fB\-printf\fP. A ação \fB\-delete\fP também atua como uma opção (uma vez que implica \fB\-depth\fP). .SS "OPÇÕES POSICIONAIS" As opções posicionais sempre retornam verdadeiras. Eles afetam apenas os testes que ocorrem posteriormente na linha de comando. .IP \-daystart Mede tempos (para \fB\-amin\fP, \fB\-atime\fP, \fB\-cmin\fP, \fB\-ctime\fP, \fB\-mmin\fP e \fB\-mtime\fP) desde o início de hoje e não 24 horas atrás. Esta opção afeta apenas os testes que aparecem mais tarde na linha de comando. .IP \-follow Descontinuada; use a opção \fB\-L\fP. Desreferencia links simbólicos. Implica \fB\-noleaf\fP. A opção \fB\-follow\fP afeta apenas os testes que aparecem depois na linha de comando. A menos que a opção \fB\-H\fP ou \fB\-L\fP tenha sido especificada, a posição da opção \fB\-follow\fP altera o comportamento do predicado \fB\-newer\fP; todos os arquivos listados como argumento de \fB\-newer\fP serão desreferenciados se forem links simbólicos. A mesma consideração se aplica a \fB\-newerXY\fP, \fB\-anewer\fP e \fB\-cnewer\fP. Da mesma forma, o predicado \fB\-type\fP sempre corresponderá ao tipo de arquivo ao qual um link simbólico aponta, em vez do próprio link. Usar \fB\-follow\fP faz com que os predicados \fB\-lname e\fP \fB\-ilname\fP sempre retornem falso. .IP "\-regextype \fItipo\fP" Altera a sintaxe da expressão regular entendida pelos testes \fB\-regex\fP e \fB\-iregex\fP que ocorrem posteriormente na linha de comando. Para ver quais tipos de expressão regular são conhecidos, use \fB\-regextype\ help\fP. A documentação do Texinfo (consulte \fBVEJA\fP \fBTAMBÉM\fP) explica o significado e as diferenças entre os vários tipos de expressão regular. .IP "\-warn, \-nowarn" Turn warning messages on or off. These warnings apply only to the command line usage, not to any conditions that \fBfind\fP might encounter when it searches directories. The default behaviour corresponds to \fB\-warn\fP if standard input is a tty, and to \fB\-nowarn\fP otherwise. If a warning message relating to command\-line usage is produced, the exit status of \fBfind\fP is not affected. If the \fBPOSIXLY_CORRECT\fP environment variable is set, and \fB\-warn\fP is also used, it is not specified which, if any, warnings will be active. .SS "OPÇÕES GLOBAIS" As opções globais sempre retornam verdadeiras. As opções globais entram em vigor mesmo para testes que ocorrem anteriormente na linha de comando. Para evitar confusão, as opções globais devem ser especificadas na linha de comando após a lista de pontos de partida, imediatamente antes do primeiro teste, opção posicional ou ação. Se você especificar uma opção global em algum outro lugar, \fBfind\fP emitirá uma mensagem de aviso explicando que isso pode ser confuso. As opções globais ocorrem após a lista de pontos de início e, portanto, não são o mesmo tipo de opção que \fB\-L\fP, por exemplo. .IP \-d Um sinônimo para \-depth, para compatibilidade com FreeBSD, NetBSD, MacOS X e OpenBSD. .IP \-depth Processa o conteúdo de cada diretório antes do próprio diretório. A ação de \-delete também implica em \fB\-depth\fP. .IP "\-files0\-from \fIfile\fP" Read the starting points from \fIfile\fP instead of getting them on the command line. In contrast to the known limitations of passing starting points via arguments on the command line, namely the limitation of the amount of file names, and the inherent ambiguity of file names clashing with option names, using this option allows to safely pass an arbitrary number of starting points to \fBfind\fP. Using this option and passing starting points on the command line is mutually exclusive, and is therefore not allowed at the same time. The \fIfile\fP argument is mandatory. One can use \fB\-files0\-from\ \-\fP to read the list of starting points from the \fIstandard input\fP stream, and e.g. from a pipe. In this case, the actions \fB\-ok\fP and \fB\-okdir\fP are not allowed, because they would obviously interfere with reading from \fIstandard input\fP in order to get a user confirmation. The starting points in \fIfile\fP have to be separated by ASCII NUL characters. Two consecutive NUL characters, i.e., a starting point with a Zero\-length file name is not allowed and will lead to an error diagnostic followed by a non\-Zero exit code later. In the case the given \fIfile\fP is empty, \fBfind\fP does not process any starting point and therefore will exit immediately after parsing the program arguments. This is unlike the standard invocation where \fBfind\fP assumes the current directory as starting point if no path argument is passed. The processing of the starting points is otherwise as usual, e.g. \fBfind\fP will recurse into subdirectories unless otherwise prevented. To process only the starting points, one can additionally pass \fB\-maxdepth\ 0\fP. Further notes: if a file is listed more than once in the input file, it is unspecified whether it is visited more than once. If the \fIfile\fP is mutated during the operation of \fBfind\fP, the result is unspecified as well. Finally, the seek position within the named \fIfile\fP at the time \fBfind\fP exits, be it with \fB\-quit\fP or in any other way, is also unspecified. By "unspecified" here is meant that it may or may not work or do any specific thing, and that the behavior may change from platform to platform, or from \fBfindutils\fP release to release. .IP "\-help, \-\-help" Imprime um resumo do uso da linha de comando de \fBfind\fP e sai. .IP \-ignore_readdir_race Normalmente, \fBfind\fP emite uma mensagem de erro quando falha ao declarar um arquivo. Se você der essa opção e um arquivo for excluído entre o momento em que \fBfind\fP lê o nome do arquivo no diretório e o momento em que ele tenta estatizá\-lo, nenhuma mensagem de erro será emitida. Isso também se aplica a arquivos ou diretórios cujos nomes são dados na linha de comando. Essa opção entra em vigor no momento em que a linha de comando é lida, o que significa que você não pode procurar uma parte do sistema de arquivos com essa opção ativada e outra parte com esta opção desativada (se precisar fazer isso, será necessário emitir dois comandos \fBfind\fP em vez disso, um com a opção e outro sem ela). Além disso, \fBfind\fP com a opção \fB\-ignore_readdir_race\fP ignorará os erros da ação \fB\-delete\fP caso o arquivo tenha desaparecido desde que o diretório pai foi lido: ele não emitirá um diagnóstico de erro e o retorno o código da ação \fB\-delete\fP será verdadeiro. .IP "\-maxdepth \fIníveis\fP" Desce no máximo \fIníveis\fP (um número inteiro não negativo) de diretórios abaixo dos pontos de partida. \fB\-maxdepth\ 0\fP significa aplicar apenas os testes e ações aos próprios pontos de partida. .IP "\-mindepth \fIníveis\fP" Não aplica nenhum teste ou ação em níveis inferiores a \fIníveis\fP (um número inteiro não negativo). \fB\-mindepth\ 1\fP significa processar todos os arquivos, exceto os pontos de partida. .IP \-mount Não desce diretórios em outros sistemas de arquivos. Um nome alternativo para \fB\-xdev\fP, para compatibilidade com outras versões do \fBfind\fP. .IP \-noignore_readdir_race Desativa o efeito de \fB\-ignore_readdir_race\fP. .IP \-noleaf Não otimiza presumindo que os diretórios contenham 2 subdiretórios a menos do que a contagem de links físicos. Essa opção é necessária ao pesquisar sistemas de arquivos que não seguem a convenção de link de diretório Unix, como sistemas de arquivos CD\-ROM ou MS\-DOS ou pontos de montagem de volume do AFS. Cada diretório em um sistema de arquivos Unix normal possui pelo menos 2 links físicos: seu nome e sua entrada ".\&". Além disso, seus subdiretórios (se houver) possuem uma entrada "..\&" vinculada a esse diretório. Quando \fBfind\fP está examinando um diretório, depois de declarar 2 subdiretórios a menos que a contagem de links do diretório, ele sabe que o restante das entradas no diretório são não\-diretórios (arquivos "folhas" na árvore de diretórios). Se apenas os nomes dos arquivos precisam ser examinados, não há necessidade de especificá\-los; isso proporciona um aumento significativo na velocidade da pesquisa. .IP "\-version, \-\-version" Imprime o número de versão do \fBfind\fP e sai. .IP \-xdev Não desce diretórios em outros sistemas de arquivos. .SS TESTES Alguns testes, por exemplo, \fB\-newerXY\fP e \fB\-samefile\fP, permitem a comparação entre o arquivo que está sendo examinado no momento e algum arquivo de referência especificado na linha de comando. Quando esses testes são usados, a interpretação do arquivo de referência é determinada pelas opções \fB\-H\fP, \fB\-L\fP e \fB\-P\fP e qualquer \fB\-follow\fP anterior, mas o arquivo de referência é examinado apenas uma vez, no momento em que a linha de comando é analisada. Se o arquivo de referência não puder ser examinado (por exemplo, a chamada do sistema \fBstat\fP(2) falha para isso), uma mensagem de erro será emitida e \fBfind\fP sairá com um status diferente de zero. .P Um argumento numérico \fIn\fP pode ser especificado para testes (como \fB\-amin\fP, \fB\-mtime\fP, \fB\-gid\fP, \fB\-inum\fP, \fB\-links\fP, \fB\-size\fP, \fB\-uid\fP e \fB\-used\fP) como .IP \fI+n\fP para maior que \fIn\fP, .IP \fI\-n\fP para menor que \fIn\fP, .IP \fIn\fP para exatamente \fIn\fP. . .P Testes suportados: .IP "\-amin \fIn\fP" O arquivo foi acessado pela última vez há menos, mais ou exatamente \fIn\fP minutos atrás. .IP "\-anewer \fIreferência\fP" O horário do último acesso ao arquivo atual é mais recente que o da última modificação de dados do arquivo \fIreferência\fP. Se \fIreferência\fP for um link simbólico e a opção \fB\-H\fP ou \fB\-L\fP estiver em vigor, sempre será usado o horário da última modificação de dados do arquivo para o qual ele aponta. .IP "\-atime \fIn\fP" O arquivo foi acessado pela última vez há menos, mais ou exatamente \fIn\fP*24 horas atrás. Quando \fBfind\fP descobre quantos períodos de 24 horas atrás o arquivo foi acessado pela última vez, qualquer parte fracionária será ignorada; portanto, para corresponder a \fB\-atime\ +1\fP, um arquivo deve ter sido acessado pelo menos \fIdois\fP dias atrás. .IP "\-cmin \fIn\fP" O status do arquivo foi alterado pela última vez há menos, mais ou exatamente \fIn\fP minutos atrás. .IP "\-cnewer \fIreferência\fP" O horário do última alteração do status do arquivo atual é mais recente que o da última modificação de dados do arquivo \fIreferência\fP. Se \fIreferência\fP for um link simbólico e a opção \fB\-H\fP ou \fB\-L\fP estiver em vigor, sempre será usado o horário da última modificação de dados do arquivo para o qual ele aponta. .IP "\-ctime \fIn\fP" O status do arquivo foi alterado pela última vez há menos, mais ou exatamente \fIn\fP*24 horas atrás. Consulte os comentários para \fB\-atime\fP para entender como o arredondamento afeta a interpretação dos tempos de alteração do status do arquivo. .IP \-empty O arquivo está vazio e é um arquivo comum ou um diretório. .IP \-executable Corresponde a arquivos executáveis e diretórios pesquisáveis (no sentido da resolução do nome do arquivo) pelo usuário atual. Isso leva em consideração as listas de controle de acesso e outros artefatos de permissões que o teste \fB\-perm\fP ignora. Este teste utiliza a chamada de sistema \fBaccess\fP(2) e, portanto, pode ser enganado por servidores NFS que fazem o mapeamento de UID (ou esmagamento da raiz), pois muitos sistemas implementam \fBaccess\fP(2) no kernel do cliente e, portanto, não pode fazer uso das informações de mapeamento do UID mantidas no servidor. Como esse teste é baseado apenas no resultado da chamada do sistema \fBaccess\fP(2), não há garantia de que um arquivo para o qual esse teste seja bem\-sucedido possa realmente ser executado. .IP \-false Sempre falso. .IP "\-fstype \fItipo\fP" O arquivo está em um sistema de arquivos do tipo \fItipo\fP. Os tipos de sistema de arquivos válidos variam entre diferentes versões do Unix; uma lista incompleta de tipos de sistemas de arquivos que são aceitos em alguma versão do Unix ou em outra é: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. Você pode usar \fB\-printf\fP com a diretiva %F para ver os tipos de seus sistemas de arquivos. .IP "\-gid \fIn\fP" O ID numérico do grupo do arquivo é menor, maior ou exatamente \fIn\fP. .IP "\-group \fInome\-grupo\fP" O arquivo pertence ao grupo \fInome\-grupo\fP (ID numérico do grupo permitido). .IP "\-ilname \fIpadrão\fP" Como \fB\-lname\fP, mas a correspondência não diferencia maiúsculas de minúsculas. Se a opção \fB\-L\fP ou \fB\-follow\fP estiver em vigor, esse teste retornará false, a menos que o link simbólico esteja quebrado. .IP "\-iname \fIpadrão\fP" Como \fB\-name\fP, mas a correspondência não diferencia maiúsculas de minúsculas. Por exemplo, os padrões "fo*" e "F??" correspondem aos nomes de arquivo "Foo" , "FOO", "foo", "fOo" etc. O padrão "*foo*" também corresponderá a um arquivo chamado ".foobar". .IP "\-inum \fIn\fP" O arquivo possui o número de nó\-i menor, maior ou exatamente \fIn\fP. Normalmente, é mais fácil usar o teste \fB\-samefile\fP. .IP "\-ipath \fIpadrão\fP" Como \fB\-path\fP, mas a correspondência não diferencia maiúsculas de minúsculas. .IP "\-iregex \fIpadrão\fP" Como \fB\-regex\fP, mas a correspondência não diferencia maiúsculas de minúsculas. .IP "\-iwholename \fIpadrão\fP" Veja \-ipath. Esta alternativa é menos portátil que \fB\-ipath\fP. .IP "\-links \fIn\fP" O arquivo possui \fIn\fP links físico. .IP "\-lname \fIpadrão\fP" O arquivo é um link simbólico cujo conteúdo corresponde ao padrão de shell \fIpadrão\fP. Os metacaracteres não tratam "/" ou ".\&" em especial. Se a opção \fB\-L\fP ou \fB\-follow\fP estiver em vigor, esse teste retornará false, a menos que o link simbólico esteja quebrado. .IP "\-mmin \fIn\fP" Os dados do arquivo foram modificados pela última vez há menos, mais ou exatamente \fIn\fP minutos atrás. .IP "\-mtime \fIn\fP" Os dados do arquivo foram modificados pela última vez há menor, mais ou exatamente \fIn\fP*24 horas atrás. Consulte os comentários para \fB\-atime\fP para entender como o arredondamento afeta a interpretação dos tempos de alteração do status do arquivo. .IP "\-name \fIpadrão\fP" Base of file name (the path with the leading directories removed) matches shell pattern \fIpattern\fP. Because the leading directories are removed, the file names considered for a match with \fB\-name\fP will never include a slash, so `\-name a/b' will never match anything (you probably need to use \fB\-path\fP instead). A warning is issued if you try to do this, unless the environment variable \fBPOSIXLY_CORRECT\fP is set. The metacharacters (`*', `?', and `[]') match a `.\&' at the start of the base name (this is a change in findutils\-4.2.2; see section STANDARDS CONFORMANCE below). To ignore a directory and the files under it, use \fB\-prune\fP rather than checking every file in the tree; see an example in the description of that action. Braces are not recognised as being special, despite the fact that some shells including Bash imbue braces with a special meaning in shell patterns. The filename matching is performed with the use of the \fBfnmatch\fP(3) library function. Don't forget to enclose the pattern in quotes in order to protect it from expansion by the shell. .IP "\-newer \fIreferência\fP" O horário do última modificação dos dados do arquivo atual é mais recente que o da última modificação de dados do arquivo \fIreferência\fP. Se \fIreferência\fP for um link simbólico e a opção \fB\-H\fP ou \fB\-L\fP estiver em vigor, sempre será usado o horário da última modificação de dados do arquivo para o qual ele aponta. .IP "\-newerXY \fIreferência\fP" É bem\-sucedido se o registro de data e hora \fIX\fP do arquivo que está sendo considerado for mais novo que o registro de data e hora \fIY\fP do arquivo \fIreferência\fP. As letras \fIX\fP e \fIY\fP podem ser qualquer uma das seguintes letras: .TS ll ll ll ll llw(2i). a O tempo de acesso do arquivo \fIreferência\fP B A tempo de criação do arquivo \fIreferência\fP c O tempo de alteração do status do nó\-i de \fIreferência\fP m A tempo de modificação do arquivo \fIreferência\fP t \fIreferência\fP é interpretado diretamente como um tempo .TE Algumas combinações são inválidas; por exemplo, é inválido que \fIX\fP seja \fIt\fP. Algumas combinações não são implementadas em todos os sistemas; por exemplo, \fIB\fP não é suportado em todos os sistemas. Se uma combinação inválida ou não suportada de \fIXY\fP for especificada, ocorrerá um erro fatal. As especificações de tempo são interpretadas como para o argumento da opção \fB\-d\fP do GNU \fBdate\fP. Se você tentar usar o tempo de criação de um arquivo de referência e o tempo de criação não puder ser determinado, uma mensagem de erro fatal será exibida. Se você especificar um teste que se refira ao tempo de criação dos arquivos que estão sendo examinados, esse teste falhará nos arquivos em que o tempo de criação seja desconhecido. .IP \-nogroup Nenhum grupo corresponde ao ID número de grupo do arquivo. .IP \-nouser Nenhum usuário corresponde ao ID número de usuário do arquivo. .IP "\-path \fIpadrão\fP" O nome do arquivo corresponde ao padrão de shell \fIpadrão\fP. Os metacaracteres de não tratam "/" ou ".\&" de forma especial; então, por exemplo, .in +4m .nf find . \-path "./sr*sc" .fi .in vai exibir uma entrada para um diretório chamado \fI./src/misc\fP (se houver). Para ignorar uma árvore de diretórios inteira, use \fBprune\fP em vez de verificar todos os arquivos na árvore. Observe que o teste de correspondência de padrões se aplica a todo o nome do arquivo, iniciando em um dos pontos de início nomeados na linha de comandos. Só faria sentido usar um nome de caminho absoluto aqui se o ponto inicial relevante também for um caminho absoluto. Isso significa que este comando nunca corresponderá a nada: .br .in +4m .nf find bar \-path /foo/bar/meuarquivo \-print .fi .in Find compara o argumento \fB\-path\fP com a concatenação de um nome de diretório e o nome base do arquivo que está sendo examinado. Como a concatenação nunca termina com uma barra, os argumentos \fB\-path\fP que terminam em uma barra não correspondem a nada (exceto talvez um ponto inicial especificado na linha de comando). O predicado \fB\-path\fP também é suportado pelo \fBfind\fP de HP\-UX e faz parte do padrão POSIX 2008. .IP "\-perm \fImodo\fP" Os bits de permissão do arquivo são exatamente \fImodo\fP (octal ou simbólico). Como é necessária uma correspondência exata, se você deseja usar este formulário para modos simbólicos, pode ser necessário especificar uma sequência de modos bastante complexa. Por exemplo, "\-perm g=w" corresponderá apenas aos arquivos que possuem o modo 0020 (ou seja, aqueles para os quais a permissão de gravação de grupo é a única permissão definida). É mais provável que você queira usar as formas "/" ou "\-", por exemplo "\-perm \-g=w", que corresponde a qualquer arquivo com permissão de gravação em grupo. Veja a seção \fBEXEMPLOS\fP para alguns exemplos ilustrativos. .IP "\-perm \-\fImodo\fP" Todos os bits de permissão \fImodo\fP são definidos para o arquivo. Os modos simbólicos são aceitos nesta forma, e geralmente é dessa maneira que você deseja usá\-los. Você deve especificar "u", "g" ou "o" se usar um modo simbólico. Veja a seção \fBEXEMPLOS\fP para alguns exemplos ilustrativos. .IP "\-perm /\fImodo\fP" Qualquer um dos bits de permissão \fImodo\fP está definido para o arquivo. Os modos simbólicos são aceitos neste formulário. Você deve especificar "u", "g" ou "o" se usar um modo simbólico. Veja a seção \fBEXEMPLOS\fP para alguns exemplos ilustrativos. Se nenhum bit de permissão em \fImodo\fP estiver definido, esse teste corresponderá a qualquer arquivo (a ideia aqui é ser consistente com o comportamento de \fB\-perm\ \-000\fP). .IP "\-perm +\fImodo\fP" Isso não é mais suportado (e está descontinuado desde 2005). Use \fB\-perm /\fP\fImodo\fP. .IP \-readable Corresponde a arquivos legíveis pelo usuário atual. Isso leva em consideração as listas de controle de acesso e outros artefatos de permissões que o teste \fB\-perm\fP ignora. Este teste utiliza a chamada de sistema \fBaccess\fP(2) e, portanto, pode ser enganado pelos servidores NFS que fazem o mapeamento de UID (ou "root\-squashing"), pois muitos sistemas implementam \fBaccess\fP(2) no kernel do cliente e, portanto, não pode usar as informações de mapeamento do UID mantidas no servidor. .IP "\-regex \fIpadrão\fP" O nome do arquivo corresponde à expressão regular \fIpadrão\fP. Esta é uma correspondência em todo o caminho, não uma pesquisa. Por exemplo, para corresponder a um arquivo chamado \fB./fubar3\fP, você pode usar a expressão regular ".*bar.\&" ou ".*b.*3", mas não "f.*r3". As expressões regulares entendidas por \fBfind\fP são por padrão expressões regulares do Emacs (exceto que "." corresponde a caracteres de nova linhas), mas isso pode ser alterado com a opção \fB\-regextype\fP. .IP "\-samefile \fInome\fP" O arquivo refere\-se ao mesmo nó\-i que \fInome\fP. Quando \fB\-L\fP está em vigor, isso pode incluir links simbólicos. .IP "\-size \fIn\fP[cwbkMG]" O arquivo usa menos, mais ou exatamente \fIn\fP unidades de espaço, arredondando para cima. Os seguintes sufixos podem ser usados: .RS .IP \(dqb\(dq para blocos de 512 bytes (este é o padrão se nenhum sufixo for usado) .IP \(dqc\(dq para bytes .IP \(dqw\(dq para palavras com 2 bytes .IP \(dqk\(dq para kibibytes (KiB, unidades de 1024 bytes) .IP \(dqM\(dq para mebibytes (MiB, unidades de 1024 * 1024 = 1\|048\|576 bytes) .IP \(dqG\(dq para gibibytes (GiB, unidades de of * 1024 * 1024 = 1\|073\|741\|824 bytes) .RE .IP O tamanho é simplesmente o membro st_size do struct stat preenchido pela chamada do sistema lstat (ou stat), arredondado para cima, como mostrado acima. Em outras palavras, é consistente com o resultado obtido para \fBls\ \-l\fP. Lembre\-se de que os especificadores de formato "%k" e "%b" de \fB\-printf\fP lidam com arquivos esparsos de maneira diferente. O sufixo "b" sempre indica blocos de 512 bytes e nunca blocos de 1024 bytes, o que é diferente do comportamento de \fB\-ls\fP. .IP Os prefixos + e \- significam maior que e menor que, como de costume; ou seja, um tamanho exato de \fIn\fP unidades não corresponde. Tenha em mente que o tamanho é arredondado para a próxima unidade. Portanto, \fB\-size\ \-1M\fP não é equivalente a \fB\-size\ \-1\|048\|576c\fP. O primeiro corresponde apenas a arquivos vazios, o último corresponde a arquivos de 0 a 1.048.575 bytes. .IP \-true Sempre verdadeiro. .IP "\-type \fIc\fP" Arquivo é do tipo \fIc\fP: .RS .IP b especial de bloco (com buffer) .IP c especial de caractere (sem buffer) .IP d diretório .IP p encadeamento com nome (FIFO) .IP f arquivo regular .IP l link simbólico; isso nunca é verdadeiro se a opção \fB\-L\fP ou a opção \fB\-follow\fP estiver em vigor, a menos que o link simbólico esteja quebrado. Se você deseja procurar links simbólicos quando \fB\-L\fP estiver em vigor, use \fB\-xtype\fP. .IP s socket .IP D door (Solaris) .RE .IP Para procurar mais de um tipo de uma vez, você pode fornecer a lista combinada de letras do tipo separadas por uma vírgula "," (extensão GNU). .IP "\-uid \fIn\fP" O ID numérico do usuário do arquivo é menor que, maior que ou exatamente \fIn\fP. .IP "\-used \fIn\fP" O arquivo foi acessado pela última vez há menos, mais ou exatamente \fIn\fP dias após a última alteração do status. .IP "\-user \fInome\-usuário\fP" O arquivo pertence ao usuário \fIuname\fP (ID numérico do usuário permitido). .IP "\-wholename \fIpadrão\fP" Veja \-path. Esta alternativa é menos portátil que \fB\-path\fP. .IP \-writable Corresponde a arquivos graváveis pelo usuário atual. Isso leva em consideração as listas de controle de acesso e outros artefatos de permissões que o teste \fB\-perm\fP ignora. Este teste utiliza a chamada de sistema \fBaccess\fP(2) e, portanto, pode ser enganado pelos servidores NFS que fazem o mapeamento de UID (ou "root\-squashing"), pois muitos sistemas implementam \fBaccess\fP(2) no kernel do cliente e, portanto, não pode usar as informações de mapeamento do UID mantidas no servidor. .IP "\-xtype \fIc\fP" O mesmo que \fB\-type\fP, a menos que o arquivo seja um link simbólico. Para links simbólicos: se a opção \fB\-H\fP ou \fB\-P\fP foi especificada, verdadeiro se o arquivo for um link para um arquivo do tipo \fIc\fP; se a opção \fB\-L\fP tiver sido fornecida, verdadeiro se \fIc\fP for "l". Em outras palavras, para links simbólicos, \fB\-xtype\fP verifica o tipo de arquivo que \fB\-type\fP não verifica. .IP "\-context \fIpadrão\fP" (SELinux somente) O contexto de segurança do arquivo corresponde ao glob \fIpadrão\fP. .SS AÇÕES .IP \-delete Delete files or directories; true if removal succeeded. If the removal failed, an error message is issued and \fBfind\fP's exit status will be nonzero (when it eventually exits). \fBWarning\fP: Don't forget that \fBfind\fP evaluates the command line as an expression, so putting \fB\-delete\fP first will make \fBfind\fP try to delete everything below the starting points you specified. The use of the \fB\-delete\fP action on the command line automatically turns on the \fB\-depth\fP option. As in turn \fB\-depth\fP makes \fB\-prune\fP ineffective, the \fB\-delete\fP action cannot usefully be combined with \fB\-prune\fP. Often, the user might want to test a find command line with \fB\-print\fP prior to adding \fB\-delete\fP for the actual removal run. To avoid surprising results, it is usually best to remember to use \fB\-depth\fP explicitly during those earlier test runs. The \fB\-delete\fP action will fail to remove a directory unless it is empty. Together with the \fB\-ignore_readdir_race\fP option, \fBfind\fP will ignore errors of the \fB\-delete\fP action in the case the file has disappeared since the parent directory was read: it will not output an error diagnostic, not change the exit code to nonzero, and the return code of the \fB\-delete\fP action will be true. .IP "\-exec \fIcomando\fP ;" Executa \fIcomando\fP; verdadeiro se 0 status for retornado. Todos os argumentos a seguir para \fBfind\fP são considerados argumentos para o comando até um argumento que consiste em ";" é encontrado. A string "{}" é substituída pelo nome do arquivo atual sendo processado em todos os lugares em que ocorre nos argumentos do comando, não apenas nos argumentos em que está sozinho, como em algumas versões de \fBfind\fP. Ambas as construções podem precisar ser escapadas (com um "\e") ou citadas para protegê\-las da expansão pelo shell. Consulte a seção \fBEXEMPLOS\fP para exemplos de uso da opção \fB\-exec\fP. O comando especificado é executado uma vez para cada arquivo correspondente. O comando é executado no diretório inicial. Existem problemas de segurança inevitáveis em torno do uso da ação \fB\-exec\fP; você deve usar a opção \fB\-execdir\fP. .IP "\-exec \fIcomando\fP {} +" Essa variante da ação \fB\-exec\fP executa o comando especificado nos arquivos selecionados, mas a linha de comando é construída anexando cada nome de arquivo selecionado no final; o número total de invocações do comando será muito menor que o número de arquivos correspondentes. A linha de comando é construída da mesma maneira que \fBxargs\fP constrói suas linhas de comando. Apenas uma instância de "{}" é permitida dentro do comando e deve aparecer no final, imediatamente antes do "+"; ele precisa ser escapado (com um "\e") ou entre aspas para protegê\-lo da interpretação pelo shell. O comando é executado no diretório inicial. Se alguma chamada com a forma "+" retornar um valor diferente de zero como status de saída, \fBfind\fP retornará um status de saída diferente de zero. Se \fBfind\fP encontrar um erro, às vezes pode causar uma saída imediata, portanto, alguns comandos pendentes podem não ser executados. Por este motivo, \fB\-exec\ \fP\fImeu\-comando\fP\fB\ ...\ {}\ +\ \-quit\fP pode não resultar em \fImeu\-comando\fP ser executado. Esta variante de \fB\-exec\fP sempre retorna verdadeiro. .IP "\-execdir \fIcomando\fP ;" .IP "\-execdir \fIcomando\fP {} +" Like \fB\-exec\fP, but the specified command is run from the subdirectory containing the matched file, which is not normally the directory in which you started \fBfind\fP. As with \-exec, the {} should be quoted if find is being invoked from a shell. This a much more secure method for invoking commands, as it avoids race conditions during resolution of the paths to the matched files. As with the \fB\-exec\fP action, the `+' form of \fB\-execdir\fP will build a command line to process more than one matched file, but any given invocation of \fIcommand\fP will only list files that exist in the same subdirectory. If you use this option, you must ensure that your \fBPATH\fP environment variable does not reference `.'; otherwise, an attacker can run any commands they like by leaving an appropriately\-named file in a directory in which you will run \fB\-execdir\fP. The same applies to having entries in \fBPATH\fP which are empty or which are not absolute directory names. If any invocation with the `+' form returns a non\-zero value as exit status, then \fBfind\fP returns a non\-zero exit status. If \fBfind\fP encounters an error, this can sometimes cause an immediate exit, so some pending commands may not be run at all. The result of the action depends on whether the \fB+\fP or the \fB;\fP variant is being used; \fB\-execdir\ \fP\fIcommand\fP\fB\ {}\ +\fP always returns true, while \fB\-execdir\ \fP\fIcommand\fP\fB\ {}\ ;\fP returns true only if \fIcommand\fP returns 0. .IP "\-fls \fIarquivo\fP" Verdadeiro; como \fB\-ls\fP, mas escreve para \fIarquivo\fP como \fB\-fprint\fP. O arquivo de saída é sempre criado, mesmo que o predicado nunca seja correspondido. Consulte a seção \fBNOMES DE ARQUIVOS INCOMUNS\fP para obter informações sobre como os caracteres incomuns nos nomes de arquivos são tratados. .IP "\-fprint \fIarquivo\fP" Verdadeiro; imprime o nome completo do arquivo no arquivo \fIarquivo\fP. Se \fIarquivo\fP não existe quando \fBfind\fP for executado, ele será criado; se existir, será truncado. Os nomes de arquivo \fI/dev/stdout\fP e \fI/dev/stderr\fP são tratados de forma especial; eles se referem à saída padrão e à saída de erro padrão, respectivamente. O arquivo de saída é sempre criado, mesmo que o predicado nunca seja correspondido. Consulte a seção \fBNOMES DE ARQUIVOS INCOMUNS\fP para obter informações sobre como os caracteres incomuns nos nomes de arquivos são tratados. .IP "\-fprint0 \fIarquivo\fP" Verdadeiro; como \fB\-print0\fP, mas escreva para \fIarquivo\fP como \fB\-fprint\fP. O arquivo de saída é sempre criado, mesmo que o predicado nunca seja correspondido. Consulte a seção \fBNOMES DE ARQUIVOS INCOMUNS\fP para obter informações sobre como os caracteres incomuns nos nomes de arquivos são tratados. .IP "\-fprintf \fIarquivo\fP \fIformato\fP" Verdadeiro; como \fB\-printf\fP, mas escreva para \fIarquivo\fP como \fB\-fprint\fP. O arquivo de saída é sempre criado, mesmo que o predicado nunca seja correspondido. Consulte a seção \fBNOMES DE ARQUIVOS INCOMUNS\fP para obter informações sobre como os caracteres incomuns nos nomes de arquivos são tratados. .IP \-ls True; list current file in \fBls \-dils\fP format on standard output. The block counts are of 1\ KB blocks, unless the environment variable \fBPOSIXLY_CORRECT\fP is set, in which case 512\-byte blocks are used. See the \fBUNUSUAL FILENAMES\fP section for information about how unusual characters in filenames are handled. .IP "\-ok \fIcomando\fP ;" Like \fB\-exec\fP but ask the user first. If the user agrees, run the command. Otherwise just return false. If the command is run, its standard input is redirected from \fI/dev/null\fP. This action may not be specified together with the \fB\-files0\-from\fP option. .IP The response to the prompt is matched against a pair of regular expressions to determine if it is an affirmative or negative response. This regular expression is obtained from the system if the \fBPOSIXLY_CORRECT\fP environment variable is set, or otherwise from \fBfind\fP's message translations. If the system has no suitable definition, \fBfind\fP's own definition will be used. In either case, the interpretation of the regular expression itself will be affected by the environment variables \fBLC_CTYPE\fP (character classes) and \fBLC_COLLATE\fP (character ranges and equivalence classes). .IP "\-okdir \fIcomando\fP ;" Like \fB\-execdir\fP but ask the user first in the same way as for \fB\-ok\fP. If the user does not agree, just return false. If the command is run, its standard input is redirected from \fI/dev/null\fP. This action may not be specified together with the \fB\-files0\-from\fP option. .IP \-print Verdadeiro; imprime o nome completo do arquivo na saída padrão, seguido por uma nova linha. Se você estiver canalizando a saída de \fBfind\fP para outro programa e houver a menor possibilidade de que os arquivos que você está procurando possam conter uma nova linha, considere seriamente usar a opção \fB\-print0\fP em vez de \fB\-print\fP. Consulte a seção \fBNOMES DE ARQUIVOS INCOMUNS\fP para obter informações sobre como os caracteres incomuns nos nomes de arquivos são tratados. .IP \-print0 Verdadeiro; imprime o nome completo do arquivo na saída padrão, seguido por um caractere nulo (em vez do caractere de nova linha que \fB\-print\fP usa). Isso permite que nomes de arquivos que contenham novas linhas ou outros tipos de espaço em branco sejam corretamente interpretados por programas que processam a saída do \fBfind\fP. Esta opção corresponde à opção \fB\-0\fP de \fBxargs\fP. .IP "\-printf \fIformato\fP" Verdadeiro; imprime \fIformato\fP na saída padrão, interpretando os escapes "\e" e a diretivas "%". As larguras e precisões dos campos podem ser especificadas como na função C \fBprintf\fP(3). Observe que muitos dos campos são impressos como %s em vez de %d, e isso pode significar que os sinalizadores não funcionam conforme o esperado. Isso também significa que o sinalizador "\-" funciona (força os campos a serem alinhados à esquerda). Diferentemente de \fB\-print\fP, \fB\-printf\fP não adiciona uma nova linha no final da string. Os escapes e as diretrizes são: .RS .IP \ea Bipe de alarme. .IP \eb Backspace. .IP \ec Para de imprimir deste formato imediatamente e limpa a saída. .IP \ef Alimentação de formulário. .IP \en Nova linha. .IP \er Carriage return. .IP \et Tabulação horizontal. .IP \ev Tabulação vertical. .IP \e0 ASCII NULO .IP \e\e A versão literal de uma barra invertida ("\e"). .IP \eNNN O caractere cujo código ASCII é NNN (octal). .PP Um caractere "\e" seguido por qualquer outro caractere é tratado como caractere comum, portanto, ambos são impressos. .IP %% Um sinal de porcentagem literal. .IP %a Hora do último acesso do arquivo no formato retornado pela função C \fBctime\fP(3). .IP %A\fIk\fP Hora do último acesso do arquivo no formato especificado por \fIk\fP, que é "@" ou uma diretiva para a função C \fBstrftime\fP(3). A seguir é mostrada uma lista incompleta de valores possíveis para \fIk\fP. Por favor, consulte a documentação de \fBstrftime\fP(3) para a lista completa. Alguns dos caracteres de especificação de conversão podem não estar disponíveis em todos os sistemas, devido a diferenças na implementação da função de biblioteca \fBstrftime\fP(3). .RS .IP @ segundos desde 1º\ de\ jan, 1970, 00:00 GMT, com parte fracionária. .PP Campos de tempo: .IP H hora (00..23) .IP I hora (01..12) .IP k hora ( 0..23) .IP l hora ( 1..12) .IP M minuto (00..59) .IP p AM ou PM da localidade .IP r tempo no formato 12 horas (hh:mm:ss [AP]M) .IP S Segundo (00.00 \&..\& 61.00). Há uma parte fracionária. .IP T tempo no formato 24 horas (hh:mm:ss.xxxxxxxxxx) .IP + Date and time, separated by `+', for example `2004\-04\-28+22:22:05.0'. This is a GNU extension. The time is given in the current timezone (which may be affected by setting the \fBTZ\fP environment variable). The seconds field includes a fractional part. .IP X representação do tempo da localidade (H:M:S). O campo segundos inclui uma parte fracionária. .IP Z fuso horário (por exemplo, EDT) ou nada se nenhum fuso horário for determinável .PP Campos de data: .IP a nome abreviado do dia da semana da localidade (dom..sáb) .IP A nome completo do dia da semana da localidade (domingo..sábado) .IP b nome abreviado do dia do mês da localidade (jan..dez) .IP B nome completo do dia do mês da localidade (janeiro..dezembro) .IP c data e hora do local (sáb 04 nov 10:02:33 1989). O formato é o mesmo que para \fBctime\fP(3) e, para preservar a compatibilidade com esse formato, não há parte fracionária no campo segundos. .IP d dia do mês (01..31) .IP D data (mm/dd/yy) .IP F date (yyyy\-mm\-dd) .IP h mesmo que b .IP j dia do ano (001..366) .IP m mês (01..12) .IP U número da semana do ano com domingo como primeiro dia da semana (00..53) .IP w dia da semana (0..6) .IP W número da semana do ano com segunda\-feira como primeiro dia da semana (00..53) .IP x representação de data da localidade (dd/mm/yyyy) .IP y últimos dois dígitos do ano (00..99) .IP Y ano (1970...\&) .RE .IP %b A quantidade de espaço em disco usada para esse arquivo em blocos de 512 bytes. Como o espaço em disco é alocado em múltiplos do tamanho do bloco do sistema de arquivos, geralmente é maior que %s/512, mas também pode ser menor se o arquivo for um arquivo esparso. .IP %B\fIk\fP File's birth time, i.e., its creation time, in the format specified by \fIk\fP, which is the same as for %A. This directive produces an empty string if the underlying operating system or filesystem does not support birth times. .IP %c Hora do último tempo de alteração do arquivo no formato retornado pela função C \fBctime\fP(3). .IP %C\fIk\fP Tempo da última alteração de status do arquivo no formato especificado por \fIk\fP, que é o mesmo que para %A. .IP %d Profundidade do arquivo na árvore de diretórios; 0 significa que o arquivo é um ponto de partida. .IP %D O número do dispositivo no qual o arquivo existe (o campo st_dev da estrutura stat), em decimal. .IP %f Imprime o nome base; o nome do arquivo com quaisquer diretórios principais removidos (apenas o último elemento). Para \fB/\fP, o resultado é "/". Veja a seção \fBEXEMPLOS\fP para um exemplo. .IP %F Tipo do sistema de arquivos em que o arquivo está; esse valor pode ser usado para \-fstype. .IP %g Nome do grupo do arquivo ou ID numérico do grupo, se o grupo não tiver um nome. .IP %G O ID numérico do grupo do arquivo. .IP %h Dirname; os diretórios principais do nome do arquivo (todos, exceto o último elemento). Se o nome do arquivo não contém barras (já que está no diretório atual), o especificador %h se expande para ".". Para arquivos que são diretórios e contêm uma barra (incluindo \fB/\fP), %h se expande para a string vazia. Veja a seção \fBEXEMPLOS\fP para um exemplo. .IP %H Ponto de partida em que arquivo foi encontrado. .IP %i Número do nó\-i do arquivo (em decimal). .IP %k A quantidade de espaço em disco usada para esse arquivo em blocos de 1\ KB. Como o espaço em disco é alocado em múltiplos do tamanho do bloco do sistema de arquivos, geralmente é maior que %s/1024, mas também pode ser menor se o arquivo for um arquivo esparso. .IP %l Objeto do link simbólico (string vazia se o arquivo não for um link simbólico). .IP %m Bits de permissão do arquivo (em octal). Esta opção usa os números "tradicionais" usados pela maioria das implementações do Unix, mas se a sua implementação específica usa uma ordem incomum de bits de permissões octais, você verá uma diferença entre o valor real do modo do arquivo e a saída de %m. Normalmente, você deseja ter um zero à esquerda nesse número e, para fazer isso, use o sinalizador \fB#\fP (como em, por exemplo, "%#m"). .IP %M Permissões do arquivo (em forma simbólica, como para \fBls\fP). Esta diretiva é suportada no findutils 4.2.5 e posterior. .IP %n Número de links físicos para o arquivo. .IP %p Nome do arquivo. .IP %P Nome do arquivo com o nome do ponto de partida sob o qual foi encontrado removido. .IP %s Tamanho do arquivo em bytes. .IP %S Escassez de arquivo. Isso é calculado como (TAMBLOCO*st_blocks/st_size). O valor exato que você obterá para um arquivo comum de um determinado comprimento depende do sistema. No entanto, arquivos normalmente esparsos terão valores menores que 1.0 e arquivos que usam blocos indiretos podem ter um valor maior que 1.0. Em geral, o número de blocos usados por um arquivo depende do sistema de arquivos. O valor usado para TAMBLOCO depende do sistema, mas geralmente é de 512 bytes. Se o tamanho do arquivo for zero, o valor impresso será indefinido. Em sistemas que não têm suporte a st_blocks, a escassez de um arquivo é presumida como 1.0. .IP %t Hora da última modificação do arquivo no formato retornado pela função C \fBctime\fP(3). .IP %T\fIk\fP Tempo da última modificação do arquivo no formato especificado por \fIk\fP, que é o mesmo que para %A. .IP %u Nome do usuário do arquivo ou ID numérico do usuário, se o usuário não tiver um nome. .IP %U O ID numérico do usuário do arquivo. .IP %y Tipo do arquivo (como em \fBls \-l\fP), U=tipo desconhecido (não deveria ocorrer) .IP %Y Tipo do arquivo (como %y), somado a seguir links simbólicos: "L"=repetição, "N"=não existente, "?" para qualquer outro erro ao determinar o tipo do alvo de um link simbólico. .IP %Z (apenas SELinux) contexto de segurança do arquivo. .IP "%{ %[ %(" Reservado para uso futuro. .PP Um caractere "%" seguido por qualquer outro caractere é descartado, mas o outro caractere é impresso (não conte com isso, pois outros caracteres de formato podem ser introduzidos). Um "%" no final do argumento de formato causa um comportamento indefinido, pois não há caractere seguinte. Em algumas localidades, ele pode ocultar as chaves da porta, enquanto em outros pode remover a página final do romance que você está lendo. As diretivas %m e %d suportam os sinalizadores \fB#\fP, \fB0\fP e \fB+\fP, mas as outras diretivas não, mesmo que imprimam números. As diretivas numéricas que não suportam esses sinalizadores incluem \fBG\fP, \fBU\fP, \fBb\fP, \fBD\fP, \fBk\fP e \fBn\fP. O sinalizador de formato "\-" é suportado e muda o alinhamento de um campo de justificado à direita (que é o padrão) para justificado à esquerda. .PP Consulte a seção \fBNOMES DE ARQUIVOS INCOMUNS\fP para obter informações sobre como os caracteres incomuns nos nomes de arquivos são tratados. .RE .IP \-prune Verdadeiro; se o arquivo for um diretório, não entra nele. Se \fB\-depth\fP for dado, então \fB\-prune\fP tem nenhum efeito. Porque \fB\-delete\fP implica em \fB\-depth\fP, você não pode usar de forma útil \fB\-prune\fP e \fB\-delete\fP juntos. Por exemplo, para pular o diretório \fIsrc/emacs\fP e todos os arquivos e diretórios dentro dele, e imprimir os nomes dos outros arquivos encontrados, faça algo como isso aqui: .in +4m .nf find . \-path ./src/emacs \-prune \-o \-print .fi .in .IP \-quit Sai imediatamente (com valor de retorno zero se nenhum erro tiver ocorrido). Isso é diferente de \fB\-prune\fP porque \fB\-prune\fP só se aplica ao conteúdo de diretórios removidos, enquanto \fB\-quit\fP simplesmente faz com que \fBfind\fP pare imediatamente. Nenhum processo filho será deixado em execução. Quaisquer linhas de comando que foram criadas por \fB\-exec\ ...\ +\fP ou \fB\-execdir\ ...\ +\fP são invocadas antes de o programa ser encerrado. Depois que \fB\-quit\fP for executado, nenhum outro arquivo especificado na linha de comando será processado. Por exemplo, `\fBfind\ \fP\fI/tmp/foo\fP\fB\ \fP\fI/tmp/bar\fP\fB\ \-print\ \-quit\fP` imprimirá apenas `/tmp/foo`. .br Um uso comum de \fB\-quit\fP é parar de pesquisar o sistema de arquivos assim que encontrarmos o que queremos. Por exemplo, se quisermos encontrar apenas um único arquivo, podemos fazer o seguinte: .in +4m .nf find / \-name needle \-print \-quit .fi .in .SS OPERADORES Listados em ordem decrescente de precedência: .IP "( \fIexpr\fP )" Força a precedência. Como os parênteses são especiais para o shell, normalmente você precisará colocá\-los entre aspas. Muitos dos exemplos nesta página de manual usam barras invertidas para este propósito: "\e(...\e)" em vez de "(...)". .IP "! \fIexpr\fP" Verdadeiro se \fIexpr\fP for falso. Esse caractere geralmente também precisará de proteção contra interpretação pelo shell. .IP "\-not \fIexpr\fP" Mesmo que !\& \fIexpr\fP, mas não compatível com POSIX. .IP "\fIexpr1 expr2\fP" Duas expressões em uma linha são consideradas unidas com um \fB\-a\fP implícito; \fIexpr2\fP não é avaliado se \fIexpr1\fP for falso. .IP "\fIexpr1\fP \-a \fIexpr2\fP" Mesmo que \fIexpr1 expr2\fP. .IP "\fIexpr1\fP \-and \fIexpr2\fP" Mesmo que \fIexpr1 expr2\fP, mas não compatível com POSIX. .IP "\fIexpr1\fP \-o \fIexpr2\fP" Ou; \fIexpr2\fP não é avaliado se \fIexpr1\fP for falso. .IP "\fIexpr1\fP \-or \fIexpr2\fP" Mesmo que \fIexpr1\fP \fB\-o\fP \fIexpr2\fP, mas não compatível com POSIX. .IP "\fIexpr1\fP , \fIexpr2\fP" Lista; ambos \fIexpr1\fP e \fIexpr2\fP são sempre avaliados. O valor de \fIexpr1\fP é descartado; o valor da lista é o valor de \fIexpr2\fP. O operador vírgula pode ser útil para pesquisar vários tipos diferentes de coisas, mas percorrer a hierarquia do sistema de arquivos apenas uma vez. A ação \fB\-fprintf\fP pode ser usada para listar os vários itens correspondentes em vários arquivos de saída diferentes. .P Observe que \fB\-a\fP quando especificado implicitamente (por exemplo, por dois testes que aparecem sem um operador explícito entre eles) ou explicitamente tem precedência mais alta do que \fB\-o\fP. Isso significa que \fBfind . \-name arquivoa \-o \-name arquivob \-print\fP nunca imprimirá um \fIarquivoa\fP. . .SH "NOMES DE ARQUIVOS INCOMUNS" Muitas das ações de \fBfind\fP resultam na impressão de dados que estão sob o controle de outros usuários. Isso inclui nomes de arquivos, tamanhos, horários de modificação e assim por diante. Os nomes dos arquivos são um problema potencial, pois podem conter qualquer caractere, exceto "\e0" e "/". Caracteres incomuns em nomes de arquivo podem causar coisas inesperadas e frequentemente indesejáveis ​​em seu terminal (por exemplo, alterar as configurações de suas teclas de função em alguns terminais). Caracteres incomuns são tratados de forma diferente por várias ações, conforme descrito abaixo. .IP "\-print0, \-fprint0" Sempre imprime o nome do arquivo exato, inalterado, mesmo se a saída for para um terminal. .IP "\-ls, \-fls" Caracteres incomuns sempre têm escape. Os caracteres de espaço em branco, barra invertida e aspas duplas são impressos usando escape no estilo C (por exemplo, `\ef', `\e"'). Outros caracteres incomuns são impressos usando escape octal. Outros caracteres imprimíveis (para \fB\-ls\fP e \fB\-fls\fP esses são os caracteres entre octal 041 e 0176) são impressos no estado em que se encontram. .IP "\-printf, \-fprintf" If the output is not going to a terminal, it is printed as\-is. Otherwise, the result depends on which directive is in use. The directives %D, %F, %g, %G, %H, %Y, and %y expand to values which are not under control of files' owners, and so are printed as\-is. The directives %a, %b, %c, %d, %i, %k, %m, %M, %n, %s, %t, %u and %U have values which are under the control of files' owners but which cannot be used to send arbitrary data to the terminal, and so these are printed as\-is. The directives %f, %h, %l, %p and %P are quoted. This quoting is performed in the same way as for GNU \fBls\fP. This is not the same quoting mechanism as the one used for \fB\-ls\fP and \fB\-fls\fP. If you are able to decide what format to use for the output of \fBfind\fP then it is normally better to use `\e0' as a terminator than to use newline, as file names can contain white space and newline characters. The setting of the \fBLC_CTYPE\fP environment variable is used to determine which characters need to be quoted. .IP "\-print, \-fprint" A uso de aspas é tratado da mesma maneira que para \fB\-printf\fP e \fB\-fprintf\fP \&. Se estiver usando \fBfind\fP em um script ou em uma situação em que os arquivos correspondentes possam ter nomes arbitrários, você deve considerar o uso de \fB\-print0\fP em vez de \fB\-print\fP. .P As ações \fB\-ok\fP e \fB\-okdir\fP imprimem o nome do arquivo atual no estado em que se encontra. Isso pode mudar em uma versão futura. . .SH "CONFORMIDADE COM OS PADRÕES" For closest compliance to the POSIX standard, you should set the \fBPOSIXLY_CORRECT\fP environment variable. The following options are specified in the POSIX standard (IEEE Std 1003.1\-2008, 2016 Edition): .IP \fB\-H\fP Está opção é suportada. .IP \fB\-L\fP Está opção é suportada. .IP \fB\-name\fP Esta opção é suportada, mas a conformidade com POSIX depende da conformidade com POSIX da função de biblioteca \fBfnmatch\fP(3) do sistema. A partir de findutils\-4.2.2, os metacaracteres de shell ("*", "?" ou "[]", por exemplo) correspondem a um "." inicial, porque a interpretação 126 do IEEE PASC requer isso. Esta é uma mudança em relação às versões anteriores do findutils. .IP \fB\-type\fP Suportado. POSIX especifica "b", "c", "d", "l", "p", "f" e "s". GNU find também suporta "D", representando uma porta, onde o sistema operacional os fornece. Além disso, GNU find permite que vários tipos sejam especificados de uma vez em uma lista separada por vírgulas. .IP \fB\-ok\fP Supported. Interpretation of the response is according to the `yes' and `no' patterns selected by setting the \fBLC_MESSAGES\fP environment variable. When the \fBPOSIXLY_CORRECT\fP environment variable is set, these patterns are taken system's definition of a positive (yes) or negative (no) response. See the system's documentation for \fBnl_langinfo\fP(3), in particular YESEXPR and NOEXPR. When \fBPOSIXLY_CORRECT\fP is not set, the patterns are instead taken from \fBfind\fP's own message catalogue. .IP \fB\-newer\fP Suportado. Se o arquivo especificado for um link simbólico, ele sempre terá a desreferência. Esta é uma mudança do comportamento anterior, que costumava tirar o tempo relevante do link simbólico; veja a seção HISTÓRICO abaixo. .IP \fB\-perm\fP Supported. If the \fBPOSIXLY_CORRECT\fP environment variable is not set, some mode arguments (for example +a+x) which are not valid in POSIX are supported for backward\-compatibility. .IP "Outros primários" Os primários \fB\-atime\fP, \fB\-ctime\fP, \fB\-depth\fP, \fB\-exec\fP, \fB\-group\fP, \fB\-links\fP, \fB\-mtime\fP, \fB\-nogroup\fP, \fB\-nouser\fP, \fB\-ok\fP, \fB\-path\fP, \fB\-print\fP, \fB\-prune\fP, \fB\-size\fP, \fB\-user\fP e \fB\-xdev\fP são todos suportados. .P O padrão POSIX especifica parênteses "(", ")", negação "!" e os operadores lógicos E/OU \fB\-a\fP e \fB\-o\fP. .P Todas as outras opções, predicados, expressões e assim por diante são extensões além do padrão POSIX. Muitas dessas extensões não são exclusivas do GNU find, entretanto. .P O padrão POSIX requer que o \fBfind\fP detecte loops: .IP O utilitário \fBfind\fP deve detectar loops infinitos; ou seja, inserir um diretório visitado anteriormente que é um ancestral do último arquivo encontrado. Ao detectar um loop infinito, o find deve escrever uma mensagem de diagnóstico para o erro padrão e deve recuperar sua posição na hierarquia ou terminar. .P GNU \fBfind\fP está em conformidade com esses requisitos. A contagem de links de diretórios que contêm entradas que são links físicos para um ancestral geralmente será menor do que deveria ser. Isso pode significar que o GNU find às vezes otimiza a visita a um subdiretório que é na verdade um link para um ancestral. Como o \fBfind\fP não entra em tal subdiretório, é permitido evitar a emissão de uma mensagem de diagnóstico. Embora esse comportamento possa ser um tanto confuso, é improvável que alguém realmente dependa desse comportamento. Se a otimização de folha foi desativada com \fB\-noleaf\fP, a entrada do diretório sempre será examinada e a mensagem de diagnóstico será emitida onde for apropriado. Links simbólicos não podem ser usados ​​para criar ciclos de sistema de arquivos como tal, mas se a opção \fB\-L\fP ou a opção \fB\-follow\fP estiver em uso, uma mensagem de diagnóstico é emitida quando \fBfind\fP encontra um loop de links simbólicos. Como acontece com os loops que contêm links físicos, a otimização de folha frequentemente significa que find sabe que não precisa chamar \fIstat()\fP ou \fIchdir()\fP no link simbólico, portanto, esse diagnóstico frequentemente não é necessário. .P A opção \fB\-d\fP é suportada para compatibilidade com vários sistemas BSD, mas você deve usar a opção compatível com POSIX \fB\-depth\fP. .P The \fBPOSIXLY_CORRECT\fP environment variable does not affect the behaviour of the \fB\-regex\fP or \fB\-iregex\fP tests because those tests aren't specified in the POSIX standard. . .SH "VARIÁVEIS DE AMBIENTE" .IP LANG Fornece um valor padrão para as variáveis ​​de internacionalização que não estão definidas ou são nulas. .IP LC_ALL Se definido como um valor de string não vazio, substitui os valores de todas as outras variáveis ​​de internacionalização. .IP LC_COLLATE The POSIX standard specifies that this variable affects the pattern matching to be used for the \fB\-name\fP option. GNU find uses the \fBfnmatch\fP(3) library function, and so support for \fBLC_COLLATE\fP depends on the system library. This variable also affects the interpretation of the response to \fB\-ok\fP; while the \fBLC_MESSAGES\fP variable selects the actual pattern used to interpret the response to \fB\-ok\fP, the interpretation of any bracket expressions in the pattern will be affected by \fBLC_COLLATE\fP. .IP LC_CTYPE This variable affects the treatment of character classes used in regular expressions and also with the \fB\-name\fP test, if the system's \fBfnmatch\fP(3) library function supports this. This variable also affects the interpretation of any character classes in the regular expressions used to interpret the response to the prompt issued by \fB\-ok\fP. The \fBLC_CTYPE\fP environment variable will also affect which characters are considered to be unprintable when filenames are printed; see the section UNUSUAL FILENAMES. .IP LC_MESSAGES Determines the locale to be used for internationalised messages. If the \fBPOSIXLY_CORRECT\fP environment variable is set, this also determines the interpretation of the response to the prompt made by the \fB\-ok\fP action. .IP NLSPATH Determina a localização dos catálogos de mensagens de internacionalização. .IP PATH Afeta os diretórios que são pesquisados ​​para encontrar os executáveis ​​chamados por \fB\-exec\fP, \fB\-execdir\fP, \fB\-ok\fP e \fB\-okdir\fP. .IP POSIXLY_CORRECT Determina o tamanho do bloco usado por \fB\-ls\fP e \fB\-fls\fP. Se \fBPOSIXLY_CORRECT\fP for definido, os blocos são unidades de 512 bytes. Caso contrário, eles são unidades de 1024 bytes. .IP Definir essa variável também desativa as mensagens de aviso (ou seja, implica \fB\-nowarn\fP) por padrão, porque POSIX requer que, além da saída para \fB\-ok\fP, todas as mensagens impressas em stderr são diagnósticos e devem resultar em um status de saída diferente de zero. .IP When \fBPOSIXLY_CORRECT\fP is not set, \fB\-perm \fP\fI+zzz\fP is treated just like \fB\-perm \fP\fI/zzz\fP if \fI+zzz\fP is not a valid symbolic mode. When \fBPOSIXLY_CORRECT\fP is set, such constructs are treated as an error. .IP When \fBPOSIXLY_CORRECT\fP is set, the response to the prompt made by the \fB\-ok\fP action is interpreted according to the system's message catalogue, as opposed to according to \fBfind\fP's own message translations. .IP TZ Afeta o fuso horário usado para algumas das diretivas de formato relacionadas ao tempo de \fB\-printf\fP and \fB\-fprintf\fP. . .SH EXEMPLOS .\" A bulleted \[bu] list of examples. .SS "Abordagem simples de `find|xargs`" .IP \[bu] Encontra arquivos com o nome \fIcore\fP no ou abaixo do diretório \fI/tmp\fP e exclua\-os. .nf \& .in +4m \fB$ find /tmp \-name core \-type f \-print | xargs /bin/rm \-f\fP .in \& .fi Observe que isso não funcionará corretamente se houver nomes de arquivo que contenham novas linhas, aspas simples ou duplas ou espaços. . .SS "Abordagem mais segura `find \-print0 | xargs \-0`" .IP \[bu] Encontra arquivos com o nome \fIcore\fP dentro ou sob o diretório \fI/tmp\fP e apaga\-os, processando os nomes dos arquivos de forma que os nomes dos arquivos ou diretórios que contenham aspas simples ou duplas, espaços ou novas linhas sejam tratados corretamente. .nf \& .in +4m \fB$ find /tmp \-name core \-type f \-print0 | xargs \-0 /bin/rm \-f\fP .in \& .fi The \fB\-name\fP test comes before the \fB\-type\fP test in order to avoid having to call \fBstat\fP(2) on every file. .PP Observe que ainda há uma corrida entre o momento em que \fBfind\fP atravessa a hierarquia imprimindo os nomes de arquivo correspondentes e o momento em que o processo executado por \fBxargs\fP funciona com aquele arquivo. . .SS "Processing arbitrary starting points" .IP \[bu] Given that another program \fIproggy\fP pre\-filters and creates a huge NUL\-separated list of files, process those as starting points, and find all regular, empty files among them: .nf \& .in +4m \fB$ proggy | find \-files0\-from \- \-maxdepth 0 \-type f \-empty\fP .in \& .fi The use of \fB`\-files0\-from\ \-`\fP means to read the names of the starting points from \fIstandard input\fP, i.e., from the pipe; and \fB\-maxdepth\ 0\fP ensures that only explicitly those entries are examined without recursing into directories (in the case one of the starting points is one). . .SS "Executando um comando para cada arquivo" .IP \[bu] Executa \fIarquivo\fP em cada arquivo no diretório atual ou abaixo dele. .nf \& .in +4m \fB$ find . \-type f \-exec file \(aq{}\(aq \e;\fP .in \& .fi Observe que as chaves são colocadas entre aspas simples para protegê\-las de interpretação como pontuação de script de shell. O ponto e vírgula é protegido de forma semelhante pelo uso de uma barra invertida, embora as aspas simples também possam ter sido usadas nesse caso. .PP Em muitos casos, pode\-se preferir a sintaxe \fB`\-exec\ \&...\&\ +`\fP ou, melhor, \fB`\-execdir\ \&...\&\ +`\fP por razões de desempenho e segurança. . .SS "Percorrendo o sistema de arquivos apenas uma vez \-\- para 2 ações diferentes" .IP \[bu] Percorre o sistema de arquivos apenas uma vez, listando arquivos e diretórios ID de usuário definido em \fI/root/suid.txt\fP e arquivos grandes em \fI/root/big.txt\fP. .nf \& .in +4m \fB$ find / \e\fP .in +4m \fB\e( \-perm \-4000 \-fprintf /root/suid.txt \(aq%#m %u %p\en\(aq \e) , \e\fP .br \fB\e( \-size +100M \-fprintf /root/big.txt \(aq%\-10s %p\en\(aq \e)\fP .in -4m .in -4m \& .fi Este exemplo usa o caractere de continuação de linha \(aq\e\(aq nas primeiras duas linhas para instruir o shell a continuar lendo o comando na próxima linha. . .SS "Pesquisando arquivos por idade" .IP \[bu] Procura arquivos em seu diretório inicial que foram modificados nas últimas vinte e quatro horas. .nf \& .in +4m \fB$ find $HOME \-mtime 0\fP .in \& .fi Este comando funciona assim porque o tempo decorrido desde a última modificação de cada arquivo é dividido por 24 horas e o restante é descartado. Isso significa que para corresponder a \fB\-mtime\fP \fB0\fP, um arquivo terá que ter uma modificação no passado, que é menos de 24 horas atrás. . .SS "Pesquisando arquivos por permissões" .IP \[bu] Pesquisa arquivos que são executáveis, mas não legíveis. .nf \& .in +4m \fB$ find /sbin /usr/sbin \-executable \e! \-readable \-print\fP .in \& .fi . .IP \[bu] Pesquisa arquivos que tenham permissão de leitura e gravação para seu dono e grupo, mas que outros usuários possam ler, mas não podem escrever. .nf \& .in +4m \fB$ find . \-perm 664\fP .in \& .fi Os arquivos que atendem a esses critérios, mas têm outros bits de permissão definidos (por exemplo, se alguém pode executar o arquivo), não serão correspondidos. . .IP \[bu] Pesquisa arquivos que tenham permissão de leitura e escrita para seu dono e grupo e que outros usuários possam ler, independentemente da presença de bits de permissão extras (por exemplo, o bit executável). .nf \& .in +4m \fB$ find . \-perm \-664\fP .in \& .fi Isso corresponderá a um arquivo que possui o modo \fI0777\fP, por exemplo. . .IP \[bu] Pesquisa por arquivos que podem ser escritos por alguém (seu dono, seu grupo ou qualquer outra pessoa). .nf \& .in +4m \fB$ find . \-perm /222\fP .in \& .fi . .IP \[bu] Pesquisa os arquivos que podem ser escritos pelo dono ou pelo grupo. .nf \& .in +4m \fB$ find . \-perm /220\fP \fB$ find . \-perm /u+w,g+w\fP \fB$ find . \-perm /u=w,g=w\fP .in \& .fi Todos os três comandos fazem a mesma coisa, mas o primeiro usa a representação octal do modo de arquivo e os outros dois usam a forma simbólica. Os arquivos não precisam poder ser escritos tanto pelo dono quanto pelo grupo para serem combinados; qualquer um servirá. . .IP \[bu] Pesquisa por arquivos que possam ser escritos tanto pelo dono quanto pelo grupo. .nf \& .in +4m \fB$ find . \-perm \-220\fP \fB$ find . \-perm \-g+w,u+w\fP .in \& .fi Ambos os comandos fazem a mesma coisa. . .IP \[bu] Uma pesquisa mais elaborada sobre permissões. .nf \& .in +4m \fB$ find . \-perm \-444 \-perm /222 \e! \-perm /111\fP \fB$ find . \-perm \-a+r \-perm /a+w \e! \-perm /a+x\fP .in \& .fi Esses dois comandos procuram arquivos que são legíveis para todos (\fB\-perm \-444\fP ou \fB\-perm \-a+r\fP), têm pelo menos um conjunto de bits de escrita (\fB\-perm /222\fP ou \fB\-perm /a+w\fP), mas não são executáveis para ninguém (\fB! \-perm /111\fP ou \fB! \-perm /a+x\fP, respectivamente). . .SS "Remoção (prune) \- omitindo arquivos e subdiretórios" .IP \[bu] Copy the contents of \fI/source\-dir\fP to \fI/dest\-dir\fP, but omit files and directories named \fI.snapshot\fP (and anything in them). It also omits files or directories whose name ends in `\(ti', but not their contents. .nf \& .in +4m \fB$ cd /dir\-origem\fP \fB$ find . \-name .snapshot \-prune \-o \e( \e! \-name \(aq*~\(aq \-print0 \e) \e\fP .br .in +4m \fB| cpio \-pmd0 /dir\-dest\fP .in -4m .in -4m \& .fi A construção \fB\-prune\ \-o\ \e(\ \&...\&\ \-print0\ \e)\fP é bastante comum. A ideia aqui é que a expressão antes de \fB\-prune\fP corresponda às coisas que devem ser removidas. No entanto, a ação \fB\-prune\fP em si retorna verdadeiro, então o \fB\-o\fP a seguir garante que o lado direito seja avaliado apenas para aqueles diretórios que não foram removidos (o conteúdo dos diretórios removidos nem mesmo é visitado , então seu conteúdo é irrelevante). A expressão do lado direito do \fB\-o\fP está entre parênteses apenas para maior clareza. Ele enfatiza que a ação \fB\-print0\fP ocorre apenas para coisas que não tinham \fB\-prune\fP aplicado a elas. Como a condição "e" padrão entre os testes liga\-se mais fortemente do que \fB\-o\fP, este é o padrão de qualquer maneira, mas os parênteses ajudam a mostrar o que está acontecendo. . .IP \[bu] Dado o seguinte diretório de projetos e seus diretórios administrativos SCM associados, execute uma busca eficiente pelas raízes dos projetos: .nf \& .in +4m \fB$ find repo/ \e\fP .in +4m \fB\e( \-exec test \-d \(aq{}/.svn\(aq \e; \e\fP \fB\-or \-exec test \-d \(aq{}/.git\(aq \e; \e\fP \fB\-or \-exec test \-d \(aq{}/CVS\(aq \e; \e\fP \fB\e) \-print \-prune\fP .in -4m .in -4m \& .fi Amostra da saída: .nf \& .in +4m \fBrepo/projeto1/CVS\fP \fBrepo/gnu/projeto2/.svn\fP \fBrepo/gnu/projeto3/.svn\fP \fBrepo/gnu/projeto3/src/.svn\fP \fBrepo/projeto4/.git\fP .in \& .fi Neste exemplo, \fB\-prune\fP evita descida desnecessária em diretórios que já foram descobertos (por exemplo, não pesquisamos \fIprojeto3/src\fP porque já encontramos \fIprojeto3/.svn\fP), mas garante diretórios irmãos (\fIprojeto2\fP e \fIprojeto3\fP) são encontrados. . .SS "Outros exemplos úteis" .IP \[bu] Pesquisa vários tipos de arquivo. .nf \& .in +4m \fB$ find /tmp \-type f,d,l\fP .in \& .fi Pesquisa arquivos, diretórios e links simbólicos no diretório \fI/tmp\fP passando esses tipos como uma lista separada por vírgulas (extensão GNU), que de outra forma é equivalente ao mais longo, porém mais portátil: .nf \& .in +4m \fB$ find /tmp \e( \-type f \-o \-type d \-o \-type l \e)\fP .in \& .fi . .IP \[bu] Pesquisa por arquivos com o nome específico \fIagulha\fP e para imediatamente quando encontrarmos o primeiro. .nf \& .in +4m \fB$ find / \-name agulha \-print \-quit\fP .in \& .fi . .IP \[bu] Demonstra a interpretação das diretivas de formato \fB%f\fP e \fB%h\fP da ação \fB\-printf\fP para alguns casos extremos. Aqui está um exemplo incluindo alguma saída. .nf \& .in +4m \fB$ find . .. / /tmp /tmp/TRACE compile compile/64/tests/find \-maxdepth 0 \-printf '[%h][%f]\en'\fP \fB[.][.]\fP \fB[.][..]\fP \fB[][/]\fP \fB[][tmp]\fP \fB[/tmp][TRACE]\fP \fB[.][compile]\fP \fB[compile/64/tests][find]\fP .in \& .fi . .SH "STATUS DE SAÍDA" \fBfind\fP sai com status 0 se todos os arquivos forem processados ​​com êxito, maior que 0 se ocorrerem erros. Esta é uma descrição deliberadamente muito ampla, mas se o valor de retorno for diferente de zero, você não deve confiar na exatidão dos resultados de \fBfind\fP. Quando ocorre algum erro, \fBfind\fP pode parar imediatamente, sem completar todas as ações especificadas. Por exemplo, alguns pontos de partida podem não ter sido examinados ou algumas invocações de programa pendentes para \fB\-exec\ \&...\&\ {}\ +\fP ou \fB\-execdir\ \&...\&\ {}\ +\fP pode não ter sido executado. . .SH HISTÓRICO A partir de findutils\-4.2.2, os metacaracteres shell ("*", "?" ou "[]", por exemplo) usados em padrões de nome de arquivo correspondem a um "." inicial, porque a interpretação 126 do IEEE POSIX requer isso. .P A partir de findutils\-4.3.3, \fB\-perm\ /000\fP agora corresponde a todos os arquivos em vez de nenhum. .P Marcas de data e hora com resolução em nanossegundos foram implementados em findutils\-4.3.3. .P A partir de findutils\-4.3.11, a ação \fB\-delete\fP define o status de saída do \fBfind\fP para um valor diferente de zero quando falha. No entanto, \fBfind\fP não será encerrado imediatamente. Anteriormente, o status de saída de \fBfind\fP não era afetado pela falha de \fB\-delete\fP. .TS l l l . Recurso Adicionado em Também ocorre em \-files0\-from 4.9.0 \-newerXY 4.3.3 BSD \-D 4.3.1 \-O 4.3.1 \-readable 4.3.0 \-writable 4.3.0 \-executable 4.3.0 \-regextype 4.2.24 \-exec ... + 4.2.12 POSIX \-execdir 4.2.12 BSD \-okdir 4.2.12 \-samefile 4.2.11 \-H 4.2.5 POSIX \-L 4.2.5 POSIX \-P 4.2.5 BSD \-delete 4.2.3 \-quit 4.2.3 \-d 4.2.3 BSD \-wholename 4.2.0 \-iwholename 4.2.0 \-ignore_readdir_race 4.2.0 \-fls 4.0 \-ilname 3.8 \-iname 3.8 \-ipath 3.8 \-iregex 3.8 .TE .P A sintaxe \fB\-perm +MODO\fP foi removida em findutils\-4.5.12, em favor de \fB\-perm\fP \fB/MODO\fP. A sintaxe \fB+MODO\fP foi descontinuada desde findutils\-4.2.21, que foi lançado em 2005. . .SH "NÃO BUGS" .SS "Surpresas de precedência de operadores" O comando \fBfind . \-name arquivoa \-o \-name arquivob \-print\fP nunca imprimirá um \fIarquivoa\fP porque isso é equivalente a \fBfind . \-name arquivoa \-o \e( \-name arquivob \-a \-print \e)\fP. Lembre\-se de que a precedência de \fB\-a\fP é mais alta do que a de \fB\-o\fP e quando não há operador especificado entre os testes, \fB\-a\fP é presumido. .SS "Mensagem de erro \(lqos caminhos devem preceder a expressão\(rq" .nf \fB$ find . \-name *.c \-print\fP find: os caminhos devem preceder a expressão find: padrão possivelmente sem aspas após o predicado `\-name'? .fi .P Isso acontece quando o shell pode expandir o padrão \fI*.c\fP para mais de um nome de arquivo existente no diretório atual e passar os nomes de arquivo resultantes na linha de comando para \fBfind\fP assim: .nf . \fBfind . \-name frcode.c locate.c word_io.c \-print\fP . .fi É claro que esse comando não vai funcionar, porque o predicado \fB\-name\fP permite exatamente apenas um padrão como argumento. Em vez de fazer as coisas dessa maneira, você deve colocar o padrão entre aspas ou escapar o caractere curinga, permitindo que \fBfind\fP use o padrão com o caractere curinga durante a pesquisa de correspondência de nome de arquivo em vez de nomes de arquivo expandidos pelo shell pai: .nf \fB$ find . \-name \(aq*.c\(aq \-print\fP \fB$ find . \-name \e*.c \-print\fP .fi . .SH BUGS Existem problemas de segurança inerentes ao comportamento que o padrão POSIX especifica para \fBfind\fP, que, portanto, não podem ser corrigidos. Por exemplo, a ação \fB\-exec\fP é inerentemente insegura e \fB\-execdir\fP deve ser usado em seu lugar. . .P A variável de ambiente \fBLC_COLLATE\fP não tem efeito na ação \fB\-ok\fP. . .SH "RELATANDO PROBLEMAS" Ajuda online do GNU findutils: .br Relate erros de tradução para . .PP Relate outros problemas por meio do formulário no rastreador de bugs do GNU Savannah: .RS .RE Tópicos gerais sobre o pacote GNU findutils são discutidos na lista de discussão \fIbug\-findutils\fP: .RS .RE . .SH "DIREITOS AUTORAIS" Copyright \(co 1990\-2022 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later . .br Este é um software livre: você é livre para alterá\-lo e redistribuí\-lo. NÃO HÁ QUALQUER GARANTIA, na máxima extensão permitida em lei. . .SH "VEJA TAMBÉM" \fBchmod\fP(1), \fBlocate\fP(1), \fBls\fP(1), \fBupdatedb\fP(1), \fBxargs\fP(1), \fBlstat\fP(2), \fBstat\fP(2), \fBctime\fP(3) \fBfnmatch\fP(3), \fBprintf\fP(3), \fBstrftime\fP(3), \fBlocatedb\fP(5), \fBregex\fP(7) .PP Documentação completa .br Ou disponível localmente via: \fBinfo find\fP .PP .SH TRADUÇÃO A tradução para português brasileiro desta página man foi criada por Rafael Fontenelle . .PP Esta tradução é uma documentação livre; leia a .UR https://www.gnu.org/licenses/gpl-3.0.html Licença Pública Geral GNU Versão 3 .UE ou posterior para as condições de direitos autorais. Nenhuma responsabilidade é aceita. .PP Se você encontrar algum erro na tradução desta página de manual, envie um e-mail para .MT debian-l10n-portuguese@lists.debian.org a lista de discussão de tradutores .ME .