1. ホーム
  2. linux

[解決済み】ファイル名にスペースや引用符が含まれるファイルをxargsでコピーするにはどうすればいいですか?

2022-04-03 19:55:06

質問

あるディレクトリの下のファイルをコピーしようとしているのですが、ファイル名にスペースやシングルクオートが含まれているものが多数あります。 このような場合 findgrepxargs , 以下のエラーが発生します。

find .|grep "FooBar"|xargs -I{} cp "{}" ~/foo/bar
xargs: unterminated quote

xargsをもっとしっかり使うために何か提案はありますか?

これは Mac OS X 10.5.3 (Leopard) と BSD xargs .

解決方法は?

を1つにまとめることができます。 find コマンドを使用します。

find . -iname "*foobar*" -exec cp -- "{}" ~/foo/bar \;

これは、ファイル名やディレクトリにスペースが含まれる場合に対応します。 この場合 -name で大文字小文字を区別した結果を得ることができます。

-- に渡されるフラグは cp で始まるファイルを処理しないようにします。 - をオプションとして指定します。