find コマンドパスの空白を修正

find コマンドパスの空白を修正

次のコマンドを使用して多くのファイルをコピーしたいと思います。

 cp `find /Volumes/DATA/ -name "*.app" -depth 1 2> /dev/null` /Volumes/VMWare/img/

しかし、これは空白が見つかった場合は順序の終わりとして解釈されるので機能しません。

この問題をどのように解決しますか?

ベストアンサー1

まず、findはその結果として何かをすることができます-exec {}。次のことができます。

find /Volumes/DATA/ -name "*.app" -depth 1 2> /dev/null -exec cp '{}' /Volumes/VMWare/img/ \;

ファイルプレースホルダー "{}"の周りに一重引用符があることを確認してください。

xargs でパイプを使用することもできます。

おすすめ記事