Solaris equivalente para profundidade / ameixa seca?

10

Estou tentando encontrar alguns arquivos dentro de um diretório. Por padrão, o find command está pesquisando o diretório que eu especifiquei e seus subdiretórios.

Eu tentei usar depth/maxdepth e prune , mas nada ajudou a superar isso. Alguém pode apontar o caminho certo para usar profundidade / poda no Solaris?

Meu código é assim:

find file_path -depth 1 -name '*.log'

Estou recebendo o seguinte erro:

find: bad option 1
find: [-H | -L] path-list predicate-list
    
por user295338 08.08.2011 / 13:03

1 resposta

15

Você está confundindo duas opções não relacionadas com nomes vagamente similares:

  • -depth não aceita nenhum argumento. Se presente, ele diz find para processar o conteúdo de um diretório antes de processar o próprio diretório.
  • -maxdepth N (onde N é um inteiro) limita a recursão a N níveis de subdiretórios.

A opção -maxdepth é uma extensão encontrada em algumas versões do find , mas não do Solaris. Há um truque para usar apenas opções padrão para find para processar um diretório sem recursing: use -prune em subdiretórios, mas exclua o diretório de nível superior. Como a única maneira de corresponder ao diretório de nível superior é pelo nome, organize o nome para . (que nunca será o nome de um subdiretório).

find /directory/to/traverse/. -name . -o \
                              -type d -prune -o \
                              -name '*.log' -print
    
por 08.08.2011 / 23:20

Tags