資格スワイプ
GNUとUnixのコマンド、リポジトリとパッケージ管理、ハードウェア・ディスク・パーティション・ファイルシステム

findコマンドで検索したファイル一覧をrmコマンドに渡して削除したいが、ファイル名にスペースが含まれる可能性がある。この場合でも安全に削除できる方法として適切なものはどれか。

  • Afind . -name "*.tmp" | rm
  • ✓find . -name "*.tmp" -print0 | xargs -0 rm
  • Cfind . -name "*.tmp" | xargs rm
  • Dfind . -name "*.tmp" -exec echo rm {} \;

解説

find -print0とxargs -0の組み合わせは、ファイル名をNUL文字で区切って受け渡すため、ファイル名にスペースや改行が含まれていても正しく1つのファイル名として扱える。

根拠1.03.3 ストリーム、パイプ、リダイレクトの使用

← 前の問題次の問題 →
スワイプでまとめて流す