it-swarm-pt.tech

Como abrir vários arquivos da saída `find`?

Eu sei que posso abrir vários arquivos encontrados em um diretório como este:

find -name *.foo -xargs <command> {} \;

Isso funciona, mas ao tentar abrir vários arquivos de texto no gedit ao mesmo tempo, ele os abre sucessivamente (quando um arquivo é fechado, o próximo é aberto).

Eu gostaria de abrir todos esses arquivos ao mesmo tempo. Como posso conseguir isso?

10
jottr

Para atuar em vários arquivos de uma vez com find, use + ao invés de \;:

find . -name '*.foo' -exec gedit {} +

Com zsh, ou com bash ≥4 se você colocar shopt -s globstar na tua ~/.bashrc, você pode usar **/ para recursar em subdiretórios:

gedit **/*.foo

Zsh também tem muitos qualificadores glob que podem substituir a maioria dos usos de find.

15

No Mac OS X bash, você pode executar algo como:

for file in $(find . -name "*.py"); do open -a SublimeText $file; done. 

Uma desvantagem é que ele abre em uma nova janela do Sublime em vez de usar uma nova guia.

2
andilabs

Eu acho que neste caso você poderia usar

find ./ -name \*.foo | xargs gedit
0
pbm