私は多くのディレクトリを持っています。このディレクトリには、紹介書とzip作業ファイルが含まれています。作業フォルダを調べる価値があるかどうかを判断できるように、迅速で簡単なクエリを実行してすべての紹介書を開きます。
find . | grep cover\.pdf | xargs open #OS X has open linked to "open" the file
これはうまくいきません。私も成功しなかったので、print0
さまざまなバリエーションを試しましたxargs -0
。これを行う正しい方法は何ですか?
ベストアンサー1
まず、Mac-OSXコンピュータで実際に使用されているバージョンを確認してくださいfind
。xargs
おそらくBSD / GNUの動作/オプションを期待し、GNU / BSDバージョンを使用することもできます。
分からない開いている複数のパラメータをサポートします。次のように呼び出されない場合xargs
:
xargs -n 1 open
(これはxargsが各引数に対して追加のオープンプロセスを実行することを意味します)
ファイル名/パスにスペースが含まれていないfind | xargs
と-print0/-0
失敗すると予想されます。
ああ、次のようなものを使うと
find -print0 | grep something | xargs -0 foo
そしてgrep
すべてのキャラクターに混乱を経験しました\0
。
GNUはgrep
(少なくとも)この-z
オプションを知っています。したがって、機能する必要があるのは次のとおりです。
find -print0 | grep -z something | xargs -0 foo
grep
どのバージョンを使用しているか確認してください。
grep --version
または(0文字)サポートgrep
については、マニュアルページを確認してください。\0