ファイル名にスペースが含まれている場合は、検索を使用する方法は?

ファイル名にスペースが含まれている場合は、検索を使用する方法は?

ファイル名を別のプログラムにパイプしたいのですが、名前にスペースが含まれている場合はすべてブロックされます。

というファイルがあるとしましょう。

foo bar

find正しい名前をどのように返すことができますか?

明らかに私が望むもの:

foo\ bar

または:

"foo bar"

編集する:私はそのようなことを経験したくありません。ファイル名文字列を別のプログラムに直接パイプできるように、xargs正しい形式の文字列を取得したいと思います。find

ベストアンサー1

フロント:

find . -type f -exec sh -c '
  for f do
    : command "$f"
  done
' sh {} +

find以下のサポート-print0xargsサポートがあります-0

find . -type f -print0 | xargs -0 <command>

-0オプションは xargs にスペースの代わりに ASCII NUL 文字を使用して (別個の) ファイル名を終了するように指示します。

例:

find . -maxdepth 1 -type f -print0 | xargs -0 ls -l

おすすめ記事