-Bash /bin /rm Argumentliste zu lange - Lösung
- 2736
- 788
- Tamina Liebach
Symptome
Diese Fehlermeldung wird angezeigt, wenn Sie versuchen, eine lange Liste von Dateien zu entfernen, zu verschieben oder zu kopieren. Wenn Sie Ihre Shell verwenden, kann ein Befehl nur eine begrenzte Anzahl von Argumenten akzeptieren. Wenn die Anzahl der an den Befehl gelieferten Argumente die zulässige Anzahl von Argumenten überschreitet, wird eine Fehlermeldung angezeigt:
-Bash: /bin /rm: Argumentliste zu langLinux -Befehl, um Ihre Grenze für maximale Argumente zu finden:
# getconf arg_max 2097152
Beispiel:
# RM * -Bash: /bin /rm: Argumentliste zu lang
Lösung
Es gibt eine Reihe von Lösungen für dieses Problem. Erstens, wenn es keine Dateien in einem Verzeichnis gibt, die wir behalten möchten, besteht die beste und schnellste Lösung darin, einfach das gesamte Verzeichnis zu entfernen und erneut neu zu erstellen. Bevor Sie fortfahren.
$ cd… / $ ls -d mydirectory $ rm -fr myDirectory $ mkdir mydirectory
Die andere Lösung besteht darin, A für Schleife einzubeziehen und alle Dateien zu entfernen, die eins sind:
$ für mich in *; mach rm "$ i"; Erledigt
oder viel schneller durch Verwendung von printf
Und Xargs
:
$ printf '%s \ 0' * | xargs -0 rm
oder
$ time echo -n * | Tr "\ 0 '| Xargs -0 rm
Die obige Lösung hat jedoch ihre eigene Einschränkung, da sie auch Dateien entfernen kann. Wie für ein Beispiel hier werden wir nur entfernen *.txt
Dateien:
$ für mich in *.txt; mach rm "$ i"; Erledigt
Die letzte und vorgeschlagene Lösung besteht darin, Regex zu verwenden, um alle Dateien in kleinere Chargen aufzuteilen. Finden Sie in allen Dateien ein ähnliches Muster und teilen Sie sie in eine kleinere Gruppen auf. Zum Beispiel zuerst entfernen, kopieren oder verschieben Sie alle Dateien, die mit beginnen A
und Erweiterung haben txt
, Danach alle Dateien, die mit beginnen B
usw.:
$ rm a*.txt $ rm b*.txt
Sie können das obige auch für alle Buchstaben mit einer für die Schleife ausführen:
$ für i in $ (echo a… z); mach rm $ i*.txt ; Erledigt
Verwandte Linux -Tutorials:
- So verschieben Sie den Ordner auf Linux
- Grundlegende Linux -Befehle
- Linux -Befehle: Top 20 wichtigste Befehle, die Sie benötigen, um…
- VIM -Editor -Grundlagen in Linux
- Bash -Skript: FLAGS -Nutzung mit Argumentenbeispielen
- So richten Sie einen OpenVPN -Server auf Ubuntu 20 ein.04
- MAN -Befehl in Linux mit Beispielen
- Ubuntu 20.04: Liste der Torrent -Clients
- Ubuntu 20.04 Tricks und Dinge, die Sie vielleicht nicht wissen
- Wie man die Bash -Geschichte verwaltet
- « Einführung
- So speichern Sie alle Shell -Befehle unmittelbar nach der Ausführung in .BASH_HISTORY -Datei »