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

Ubuntu – Argumentliste zu lang?

Ich versuche, einen Befehl mit SEHR großem Argument (1 MB groß) einzugeben, aber es heißt „Argument list too long“. Wie kann ich dieses Argument eingeben?

Betriebssystem:Linux Ubuntu

Akzeptierte Antwort:

Es gibt keine Möglichkeit, ein Argument zwischen ausführbaren Dateien zu übergeben, wenn es größer als der ARG_MAX des Kernels ist begrenzen.

Wenn Sie eine Liste von haben Argumente, die zu lang sind, kann eine Aufteilung in kleinere Teile erfolgen, z. mit xargs . Dies führt den Befehl so oft wie nötig aus und liefert so viele Argumente, wie passen.

Die Syntax ist xargs command <file . Wenn Sie command weglassen , zeigt es seine Argumente an, wie echo .

Als Demo,

xargs -n 4 </etc/motd

druckt die ersten vier Tokens in einer Zeile (erster Aufruf), die nächsten vier durch eine weitere usw. (Der -n Argument legt eine maximale Anzahl von Argumenten fest, daher wird ARG_MAX nicht verwendet Grenze überhaupt.)

Wenn der Befehl, den Sie ausführen möchten, Nebenwirkungen hat, die unerwünscht sind, funktioniert dies möglicherweise nicht. Wenn beispielsweise der command überschreibt alle zuvor vorhandenen ./a.out Datei, werden Sie offensichtlich nur mit den Ergebnissen des letzten Durchlaufs zurückgelassen, nachdem dieser beendet ist.

Wenn Sie command konfigurieren oder ändern können Daher wird anstelle eines Befehlszeilenarguments eine Datei oder Standardeingabe gelesen, mit der die Einschränkung umgangen werden kann. Eine Datei oder ein Stream kann viel größer als ARG_MAX sein , und ist es oft.


Ubuntu
  1. So listen Sie installierte Pakete unter Ubuntu 20.04 auf

  2. Ubuntu Runuser-Befehl?

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

  4. bash:/bin/tar:Argumentliste zu lang, wenn viele Dateien mit tar komprimiert werden

  5. ps:vollständiger Befehl ist zu lang

So löschen Sie Benutzer auf Ubuntu

Ubuntu 22.04 Speicherplatzprüfung

So ändern Sie den Hostnamen in Ubuntu 18.04

SS-Befehl unter Linux

Kontingentverwaltung auf Ubuntu

Ping-Befehl in Ubuntu 22.04