GNU/Linux >> Linux の 問題 >  >> Linux

「引数リストが長すぎます」というエラーでディレクトリからファイルを削除できない

問題

コマンドラインから多数のファイルをリストまたは操作しようとすると、次のエラーが発生します:

$ ls -l *.xml | wc -l
bash: /bin/ls: Argument list too long
0
$ rm *.xml
bash: /bin/rm: Argument list too long

または、find コマンドを使用して多数のファイルを削除しようとすると、次のエラー メッセージが表示されて失敗します:

$ find /u01/oracle/apps/fs1/EBSapps/appl/xdo/12.0.0/temp/*.xml -mtime +120 -exec rm -v {} \;
bash: /usr/bin/find: Argument list too long

解決策

カーネルによってコマンド ラインに大きな制限が課されており、上記のエラーは制限に達したことを示しています。

これを回避するには、標準入力からファイル名のリストを受け取り、コマンドを実行する xargs を使用できます。以下のように、「find」を「xargs」と組み合わせて使用​​できます。

# find . -type f -name '*.xml' | xargs rm

注意 :上記のコマンドは、確認なしで、現在のディレクトリにある .xml 拡張子を持つすべてのファイルを削除します。実行する前に、必要なファイルのバックアップを取ることをお勧めします。テスト マシンで検証し、実稼働マシンに進む前にチェックすることは常に良いことです。


Linux
  1. Ubuntu –引数リストが長すぎますか?

  2. 大量のファイルがあるNfsディレクトリでLsコマンドの割り込みが遅いのはなぜですか?

  3. Linux で find コマンドを使用して、スペースのあるファイルを検索して削除する

  1. bash:/bin/tar:tar で多数のファイルを圧縮すると、引数リストが長すぎます

  2. ディレクトリから最近削除されたファイルを一覧表示する方法は?

  3. ファイルを含む既存のツリーから新しい空のディレクトリ ツリーを作成する

  1. rm、cp、mv コマンドの引数リストが長すぎるというエラー

  2. 断続的な OSError:[Errno 7] 引数リストが短いコマンドで長すぎます (~125 文字)

  3. LSコマンドでフォルダのファイルをページごとに一覧表示する