「検索」出力から複数のファイルを開く方法は?


10

私はディレクトリにある複数のファイルを次のように開くことができることを知っています:

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

これは機能しますが、geditで多数のテキストファイルを同時に開こうとすると、それらが連続して開かれます(1つのファイルが閉じられると、次のファイルが開かれます)。

これらのファイルをすべて同時に開きたいのですが。どうすればこれを達成できますか?

回答:


15

で複数のファイルを一度findに操作する+には、の代わりにを使用します\;

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

、またはあなたが置く場合≥4のbashとzshのではshopt -s globstar、あなたの中で~/.bashrc、あなたが使用することができます**/サブディレクトリに再帰します:

gedit **/*.foo

Zshには、のほとんどの用途を置き換えることができる多くのglob修飾子もありfindます。


誰かがMac OS Xでそれを実行する方法を提案できますか?
andilabs 2013年

@andiは自分で解決しました。しかし、誰かが何か短いものを提案したり、SublimeTextをウィンドウではなく別のタブで開くように強制したりすると、かなり驚きます。
andilabs 2013年

@andiこれはSublimeTextの問題です。別のスレッドとして問い合わせてください。
Gilles「SO-邪悪なことをやめなさい」

とにかく、私はそれが正確なbash形式についてだと思いopen -a SublimeText admin.py forms.pyます。たとえば、実行すると、2つのタブを持つ1つのウィンドウで開くからです。
andilabs 2013年

2

Mac OS X bashでは、次のように実行できます。

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

1つの欠点は、新しいタブを使用する代わりに、Sublimeの新しいウィンドウで開くことです。


0

この場合、あなたは使うことができると思います

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

1
これは、ファイル名に特殊文字(空白または\'")が含まれている場合は機能xargsfindません。入力を引用符で囲まないようにする必要があるためです。を使用するfind … -print0 | xargs -0 …か、より単純なものを使用しfind … -exec … {} +ます。
Gilles「SO-悪をやめなさい」

また、この場合は当てはまりませんが、-print0 | xargs -0標準入力が乱れて端末に接続されていないという問題があります。テキストモードエディターを使用しようとしている場合の問題。
derobert
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.