Como encontro um nome de arquivo com exatamente 8 níveis de profundidade?

4

Estou usando o comando 'find' para procurar arquivos em um sistema de backup. Quero encontrar todos os nomes de arquivo que contêm uma determinada string (por exemplo, ' XYZ ') com exatamente 8 níveis de profundidade.

Existe uma sintaxe de localização que fará isso? Muito obrigado.

    
por R Greg Stacey 29.07.2015 / 18:20

1 resposta

6

Supondo que você esteja usando o GNU find ou outro find que tenha essas opções,

find . -mindepth 8 -maxdepth 8 -name '*XYZ*'

Se você não tem esse comando find , você pode usar esta versão POSIX:

# must contain exactly 7 slashes
find . -path '*/*/*/*/*/*/*/*' -prune -name '*XYZ*'

-path '*/*/*/*/*/*/*/*' seleciona caminhos com pelo menos 8 níveis de profundidade (contém pelo menos 7 barras, profundidade 0 é . , profundidade 1 são os arquivos no diretório atual), fazendo -prune para eles evitarão find de descer para as pastas que têm 8 níveis de profundidade, então as 9 e acima nunca serão vistas.

    
por 29.07.2015 / 18:22