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

10

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

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

Isso funciona, mas ao tentar abrir um monte de 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?

    
por jottr 28.11.2010 / 16:09

3 respostas

14

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

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

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

gedit **/*.foo

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

    
por 28.11.2010 / 16:32
2

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

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

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

    
por 01.11.2013 / 03:05
0

Eu acho que neste caso você poderia usar

find ./ -name \*.foo | xargs gedit
    
por 28.11.2010 / 16:20

Tags