UNIX のディレクトリに数百の PDF があります。PDF の名前は非常に長いです (約 60 文字)。
次のコマンドを使用してすべての PDF をまとめて削除しようとすると:
rm -f *.pdf
次のエラーが発生します:
/bin/rm: cannot execute [Argument list too long]
このエラーの解決方法は何ですか? このエラーは コマンドでも発生しますかmv
?cp
発生する場合、これらのコマンドをどのように解決しますか?
ベストアンサー1
これが起こる理由は、bash が実際にアスタリスクをすべての一致するファイルに展開し、非常に長いコマンドラインを生成するためです。
これを試して:
find . -name "*.pdf" -print0 | xargs -0 rm
警告:これは再帰的な検索であり、サブディレクトリ内のファイルも検索 (および削除) します。-f
確認が不要な場合にのみ、rm コマンドにこれを追加してください。
コマンドを非再帰的にするには、次の操作を実行できます。
find . -maxdepth 1 -name "*.pdf" -print0 | xargs -0 rm
別のオプションとしては、find の-delete
フラグを使用することです。
find . -name "*.pdf" -delete