スペースを含むファイル名を処理するために find を使用すると発生する問題

スペースを含むファイル名を処理するために find を使用すると発生する問題

findコマンドを使用して複数のファイルに対して結合を実行しようとしています。

スペースを含むファイル名が問題を引き起こすことは確実です。

次のコマンドは、スペースを含まないファイルに対して機能しますが、ファイル名にスペースが含まれていると失敗します。

  find /media/primary/acronis_ntfs/flickr_01/. -type f -name '*.*' | xargs cat > /media/primary/acronis_ntfs/flickr_01.txt

私も別のコマンドを試しましたが、すべて同じ結果を得ました。

  find /media/primary/acronis_ntfs/flickr_01/. -type f | xargs cat > /media/primary/acronis_ntfs/flickr_01.txt

フォルダに直接行って実行すると

  cat * > flickr_01.txt

それは動作します - スペースとすべて。

私はUbuntu 16.10を実行しています。

どんな提案がありますか?

シンプルだと思ったことで髪が抜けました。

ベストアンサー1

ファイル名間の区切り文字として NUL を使用し、xargs に同じ内容を検索するように指示します。

find .... -print0 | xargs -0 ...

おすすめ記事