Solaris equivalente a profundidade / ameixa?

10

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

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

Meu código fica assim:

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

Eu estou recebendo o seguinte erro:

find: bad option 1
find: [-H | -L] path-list predicate-list
user295338
fonte

Respostas:

15

Você está confundindo duas opções não relacionadas que têm nomes vagamente semelhantes:

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

A -maxdepthopção é uma extensão encontrada em algumas versões find, mas não no Solaris. Há um truque para usar apenas opções padrão findpara processar um diretório sem repetir: use -pruneem 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 .(que nunca será o nome de um subdiretório).

find /directory/to/traverse/. -name . -o \
                              -type d -prune -o \
                              -name '*.log' -print
Gilles 'SO- parar de ser mau'
fonte
Eu estava enfrentando esse mesmo problema e essa solução ajudou. Passei um dia tentando encontrar uma solução para fazer isso funcionar. Grrr, Solaris.
Kevin Teljeur 21/09/16
Você vê algum problema usando o sed para remover o /./ find $ {directory} / sh /. -name. -o -type d -une -o -print | sed 's /\/\.\//\//'
Ethan Pós
@ EthanPost Você pode fazer isso, mas encontre implementações sem -mindepthe -maxdepthsão uma raça que está desaparecendo. Se a sua descoberta tiver -maxdepth, usefind /directory/to/traverse -mindepth 1 -maxdepth 1 -name '*.log'
Gilles 'SO- stop be evil'
O @Gilles leva apenas um tempo para quebrá-lo quando você está construindo uma estrutura que pode precisar ser executada exatamente nessas circunstâncias! Esse mercado pode ser meu pão e manteiga algum dia! Obrigado pela ajuda.
Ethan Post