GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Dateien können nicht aus dem Verzeichnis entfernt werden mit Fehler „Argumentliste zu lang“

Das Problem

Beim Versuch, eine große Anzahl von Dateien über die Befehlszeile aufzulisten oder mit ihnen zu interagieren, wird folgender Fehler ausgegeben:

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

oder beim Versuch, eine große Anzahl von Dateien mit dem Befehl find zu löschen, schlägt dies mit der folgenden Fehlermeldung fehl:

$ 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

Die Lösung

Es gibt ein großes, aber endliches Limit für die Befehlszeile, das vom Kernel auferlegt wird, und die oben gezeigten Fehler zeigen an, dass das Limit erreicht wurde.

Um dies zu umgehen, kann xargs verwendet werden, das eine Liste von Dateinamen von seiner Standardeingabe akzeptiert und den Befehl darauf ausführt. Sie können „find“ in Kombination mit „xargs“ wie folgt verwenden:

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

HINWEIS :Der obige Befehl löscht alle Dateien mit der Erweiterung .xml im aktuellen Verzeichnis ohne Bestätigung. Ich würde Ihnen empfehlen, vor der Ausführung zuerst eine Sicherungskopie der erforderlichen Dateien zu erstellen. Es ist immer gut, dies auf einer Testmaschine zu überprüfen und zu überprüfen, bevor Sie mit der Produktionsmaschine fortfahren.


Linux
  1. Ubuntu – Argumentliste zu lang?

  2. Liste der Pakete von der Befehlszeile mit Apt-get installieren/entfernen?

  3. Linux-ls-Befehl - Dateien auflisten

  4. Fehler Argumentliste zu lang für rm-, cp-, mv-Befehle

  5. Intermittierender OSError:[Errno 7] Argumentliste zu lang mit kurzem Befehl (~125 Zeichen)

So entfernen Sie ein Verzeichnis in Linux

So entfernen Sie Verzeichnisse und Dateien unter Linux

Verzeichnis in Linux entfernen – So löschen Sie einen Ordner von der Befehlszeile aus

Wie man Dateien in Linux rekursiv auflistet

Warum unterbricht der Ls-Befehl das NFS-Verzeichnis mit vielen Dateien nur langsam?

Grundlagen der Linux-Befehlszeile – Arbeiten mit Dateien und Verzeichnissen