é possível abrir arquivos em subdiretórios com menos?

0

Às vezes, eu uso menos para acessar rapidamente uma pequena coleção de arquivos usando algo como

less brscan/*/*

e depois eu uso :n para percorrer os arquivos

Se eu tiver uma pasta / s, por exemplo,

brscan/
├── DEBIAN
│   ├── conffiles
│   ├── control
│   ├── postinst
│   ├── postrm
│   └── prerm
├── etc
│   └── opt
├── opt
│   └── brother
└── usr
    ├── bin
    └── lib64

neste exemplo, less selecionará os arquivos na pasta DEBIAN

DEBIAN
       ├── conffiles
       ├── control
       ├── postinst
       ├── postrm
       └── prerm

mas não vai descer em outros subdiretórios, apenas erros:

brscan/etc is a directory
brscan/opt is a directory
brscan/usr is a directory

é possível obter menos para paginar os arquivos nesses subdiretórios?

Estou pensando em algo como

find brscan/ | xargs less

mas não está funcionando - ainda pegando diretórios

    
por the_velour_fog 14.04.2015 / 10:42

2 respostas

1

especifica -not -type d para omitir diretórios do resultado da busca

find -not -type d | xargs less

ou melhor:

find -not -type d -print0 | xargs -0 less

que manipula nomes de arquivos com espaços neles melhor.

    
por 14.04.2015 / 11:17
1

Com a opção bash , globstar , você pode :

shopt -s globstar
less brscan/**/*

Mas também inclui diretórios. Com zsh , você pode filtrar a expansão apenas para arquivos regulares:

less brscan/**/*(.)

Todos os itens acima falharão se houver muitos arquivos retornados. O modo seguro é usar find :

find brscan -type f -exec less {} +
    
por 14.04.2015 / 11:31