Listar todos os arquivos em pastas diferentes com o mesmo nome

3

Eu tenho pastas diferentes com o nome "templates" em vários locais no meu código. Eu preciso listar todos os arquivos dentro das pastas com o nome "templates"

    
por Gokul N K 05.12.2016 / 12:42

2 respostas

4

Isto irá encontrar todos os diretórios com o nome "templates" abaixo do diretório atual e listará todos os arquivos neles

find -name 'templates' -type d -execdir ls {} \;
    
por 05.12.2016 / 12:53
1

Todos os arquivos em templates pastas, de forma recursiva:

find . -path '*/templates/*'

Se você não quiser os arquivos nos subdiretórios das pastas templates (exceto os templates/foo/templates/bar , é claro), use a extensão -regex de algumas find implementations:

find . -regex '.*/templates/[^/]*'

Se você quiser apenas arquivos regulares , adicione um -type f . Para qualquer tipo de arquivo, exceto o diretório, ! -type d .

Se você se importa apenas com os nomes dos arquivos e não com o caminho que leva a eles, com GNU find , inclua -printf '%f\n' (e talvez pipe em sort -u , assumindo que os nomes de arquivo não contenham caracteres de nova linha , para obter nomes exclusivos).

    
por 05.05.2017 / 18:39

Tags