3
find . -iname '*.rar' -execdir ls {} +

これは、OSX Lion、yieldls: blabla.rar: No such file or directoryなどでは機能しません。

さらに、上記はLinuxで動作します。ただし、結果が見つかった回数だけlsを呼び出します。cat $#簡単なスクリプトでテストしました。

だから私は2つの問題を見ます-execdir

  • Linuxでは、使用時にマニュアルに記載されている検索結果を組み合わせることはありません{} +
  • OSXでは、マニュアルに記載されているようにディレクトリは変更されません。{} +

これがバグであり、私の誤解ではないことを確認したかった。

4

2 に答える 2

3

Mountain Lion については知りませんが、これは GNU findutils の既知のバグであり、明らかに 4.5 ブランチで修正されています ( を確認してくださいfind --version)。https://savannah.gnu.org/bugs/?19593を参照

次のバグもあります:検索バージョン 4.5.9 のhttps://savannah.gnu.org/bugs/?29949は、Mountain Lion の症状と一致します。おそらく、両方のバージョン番号を確認する必要があります。

于 2012-10-25T17:51:55.263 に答える
0

lsLinux では、ファイルごとに 1 回、またはサブディレクトリごとに 1 回実行されますか? man find(GNU findutils バージョン 4.4.2)から:

アクションと同様 -execに、'+' 形式は-execdir 、複数の一致するファイルを処理するコマンド ラインを作成しますが、コマンドを呼び出すと、同じサブディレクトリに存在するファイルのみが一覧表示されます。

于 2012-10-25T17:36:51.753 に答える