Dies ist der Befehl xargs, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
xargs – Befehlszeilen aus der Standardeingabe erstellen und ausführen
ZUSAMMENFASSUNG
xargs [-0prtx] [-E eof-str] [-e[eof-str]] [--eof[=eof-str]] [--Null] [-d Trennzeichen]
[--Trennzeichen Trennzeichen] [-I ersetzen-str] [-i[ersetzen-str]] [--ersetzen[=ersetzen-str]]
[-l[maximale Anzahl an Zeilen]] [-L maximale Anzahl an Zeilen] [--maximale Anzahl an Zeilen[=maximale Anzahl an Zeilen]] [-n max-args] [--max-args=max-
args] [-s max-chars] [--max-chars=max-chars] [-P max-Prozesse] [--max-procs=max-Prozesse]
[--process-slot-var=Name] [--interaktiv] [- ausführlich] [--Ausfahrt] [--no-run-if-empty]
[--arg-Datei=Datei] [--show-limits] [--Version] [--help] [Befehl [Anfangsargumente]]
BESCHREIBUNG
Diese Handbuchseite dokumentiert die GNU-Version von xargs. xargs liest Elemente aus dem Standard
Eingabe, durch Leerzeichen getrennt (die mit doppelten oder einfachen Anführungszeichen oder einem geschützt werden können
Backslash) oder Zeilenumbrüche und führt die aus Befehl (Standard ist /bin/echo) einmal oder mehrmals
mit jedem Anfangsargumente gefolgt von Elementen, die aus der Standardeingabe gelesen werden. Leerzeilen auf dem
Standardeingaben werden ignoriert.
Die Befehlszeile für Befehl wird aufgebaut, bis eine systemdefinierte Grenze erreicht wird (es sei denn
-n und -L Optionen verwendet werden). Die angegebene Befehl wird so oft aufgerufen
erforderlich, um die Liste der Eingabeelemente zu verbrauchen. Im Allgemeinen werden es viel weniger sein
Anrufungen von Befehl als es Elemente in der Eingabe gab. Dies wird normalerweise der Fall sein
erhebliche Leistungsvorteile. Einige Befehle können sinnvollerweise auch parallel ausgeführt werden;
finden Sie in der -P .
Da Unix-Dateinamen Leerzeichen und Zeilenumbrüche enthalten können, ist dieses Standardverhalten häufig der Fall
problematisch; Dateinamen, die Leerzeichen und/oder Zeilenumbrüche enthalten, werden von falsch verarbeitet
xargs. In diesen Situationen ist es besser, das zu verwenden -0 Option, die dies verhindert
Probleme. Wenn Sie diese Option verwenden, müssen Sie sicherstellen, dass das Programm, das produziert
die Eingabe für xargs verwendet auch ein Nullzeichen als Trennzeichen. Wenn das Programm GNU ist
gefunden zum Beispiel die -print0 Option erledigt dies für Sie.
Wenn ein Aufruf des Befehls mit dem Status 255 beendet wird, xargs wird sofort aufhören
ohne weitere Eingaben zu lesen. In diesem Fall wird auf stderr eine Fehlermeldung ausgegeben
das passiert.
OPTIONAL
-0, --Null
Eingabeelemente werden durch ein Nullzeichen statt durch Leerzeichen abgeschlossen
Anführungszeichen und Backslash sind nichts Besonderes (jedes Zeichen wird wörtlich genommen).
Deaktiviert die Dateiendezeichenfolge, die wie jedes andere Argument behandelt wird. Nützlich
wenn Eingabeelemente möglicherweise Leerzeichen, Anführungszeichen oder Backslashes enthalten. Das GNU
Die Option „find -print0“ erzeugt eine für diesen Modus geeignete Eingabe.
-a Datei, --arg-file=Datei
Artikel lesen aus Datei anstelle der Standardeingabe. Wenn Sie diese Option verwenden, stdin
bleibt bei der Ausführung von Befehlen unverändert. Andernfalls wird stdin von umgeleitet
/ dev / null.
--trennzeichen=delim, -d delim
Eingabeelemente werden durch das angegebene Zeichen beendet. Das angegebene Trennzeichen kann sein
ein einzelnes Zeichen sein, ein Zeichen-Escapezeichen im C-Stil, z \n, oder ein Oktal oder
Hexadezimaler Escape-Code. Oktale und hexadezimale Escape-Codes werden wie folgt verstanden
printf Befehl. Multibyte-Zeichen werden nicht unterstützt. Bei der Bearbeitung der
Eingabe, Anführungszeichen und Backslash sind nichts Besonderes; Jedes Zeichen in der Eingabe wird übernommen
buchstäblich. Der -d Die Option deaktiviert alle Dateiendezeichenfolgen, die wie folgt behandelt werden
irgendein anderes Argument. Sie können diese Option verwenden, wenn die Eingabe einfach ist
Durch Zeilenumbrüche getrennte Elemente, obwohl es fast immer besser ist, Ihr Programm zu entwerfen
benutzen --Null wo das möglich ist.
-E eof-str
Legen Sie die Zeichenfolge für das Ende der Datei fest auf eof-str. Wenn das Ende der Dateizeichenfolge als Zeile auftritt
der Eingabe wird der Rest der Eingabe ignoriert. Wenn weder -E noch -e wird verwendet, kein Ende
der Dateizeichenfolge wird verwendet.
-e[eof-str], --eof[=eof-str]
Diese Option ist ein Synonym für die -E Möglichkeit. Benutzen -E stattdessen, weil es POSIX ist
kompatibel, während diese Option nicht kompatibel ist. Wenn eof-str weggelassen wird, gibt es kein Dateiende
Zeichenfolge. Wenn weder -E noch -e verwendet wird, wird keine End-of-File-Zeichenfolge verwendet.
-I ersetzen-str
Ersetzen Sie Vorkommen von ersetzen-str in den Anfangsargumenten mit vorgelesenen Namen
Standardeingabe. Außerdem beenden nicht in Anführungszeichen gesetzte Leerzeichen Eingabeelemente nicht; stattdessen die
Trennzeichen ist das Zeilenumbruchzeichen. Impliziert -x und -L 1.
-i[ersetzen-str], --ersetzen[=replace-str]
Diese Option ist ein Synonym für -Iersetzen-str if ersetzen-str angegeben. Wenn die
ersetzen-str Argument fehlt, der Effekt ist der gleiche wie -I{}. Diese Option ist
veraltet; verwenden -I stattdessen.
-L maximale Anzahl an Zeilen
Höchstens verwenden maximale Anzahl an Zeilen nicht leere Eingabezeilen pro Befehlszeile. Nachgestellte Leerzeichen verursachen
eine Eingabezeile, die in der nächsten Eingabezeile logisch fortgeführt werden soll. Impliziert -x.
-l[maximale Anzahl an Zeilen], --maximale Anzahl an Zeilen[=maximale Anzahl an Zeilen]
Synonym für die -L Möglichkeit. nicht wie -L, des maximale Anzahl an Zeilen Argument ist optional. Wenn max-
Linien ist nicht angegeben, der Standardwert ist eins. Der -l Die Option ist veraltet, da die
Der POSIX-Standard spezifiziert -L stattdessen.
-n max-args, --max-args=max-args
Höchstens verwenden max-args Argumente pro Befehlszeile. Weniger als max-args Argumente
wird verwendet, wenn die Größe (siehe -s Option) überschritten wird, es sei denn, die -x Option ist
gegeben, in diesem Fall xargs werden wir Ausfahrt.
-P max-Prozesse, --max-procs=max-Prozesse
Lauf hoch max-Prozesse Prozesse gleichzeitig; Der Standardwert ist 1. Wenn max-Prozesse ist 0,
xargs wird so viele Prozesse wie möglich gleichzeitig ausführen. Benutzen Sie die -n Option oder die
-L Option mit -P; andernfalls besteht die Möglichkeit, dass nur eine Exec ausgeführt wird. Während
xargs läuft, können Sie seinem Prozess ein SIGUSR1-Signal senden, um die Anzahl zu erhöhen
von Befehlen, die gleichzeitig ausgeführt werden sollen, oder ein SIGUSR2, um die Anzahl zu verringern. Sie können nicht
Erhöhen Sie es über einen durch die Implementierung definierten Grenzwert (der mit --show- angezeigt wird)
Grenzwerte). Sie können den Wert nicht unter 1 senken. xargs beendet niemals seine Befehle;
Wenn es zum Verringern aufgefordert wird, wartet es lediglich auf mehr als einen vorhandenen Befehl
Beenden Sie, bevor Sie ein anderes starten.
Bitte kontaktieren Sie uns, wenn Sie Probleme im Zusammenhang mit dieser Website haben oder beachten dass es an den aufgerufenen Prozessen liegt, die Parallelität ordnungsgemäß zu verwalten
Zugriff auf gemeinsam genutzte Ressourcen. Zum Beispiel, wenn mehr als einer von ihnen versucht zu drucken
zu stdout wird die Ausgabe in einer unbestimmten Reihenfolge (und sehr wahrscheinlich) erzeugt
durcheinander), es sei denn, die Prozesse wirken in irgendeiner Weise zusammen, um dies zu verhindern. Einige verwenden
Eine Art Sperrschema ist eine Möglichkeit, solche Probleme zu verhindern. Im Allgemeinen verwendet man a
Das Sperrschema trägt dazu bei, eine korrekte Ausgabe sicherzustellen, verringert jedoch die Leistung. Wenn du
Wenn Sie den Leistungsunterschied nicht tolerieren möchten, arrangieren Sie ihn einfach für jeden Prozess
um eine separate Ausgabedatei zu erstellen (oder anderweitig separate Ressourcen zu verwenden).
-P, --interaktiv
Fragen Sie den Benutzer, ob er jede Befehlszeile ausführen und eine Zeile daraus lesen soll
Terminal. Führen Sie die Befehlszeile nur aus, wenn die Antwort mit „y“ oder „Y“ beginnt.
Impliziert -t.
--process-slot-var=Name
Legen Sie die Umgebungsvariable fest Name auf einen eindeutigen Wert in jedem laufenden untergeordneten Prozess.
Werte werden wiederverwendet, sobald untergeordnete Prozesse beendet werden. Dies kann rudimentär genutzt werden
Lastverteilungsschema zum Beispiel.
-R, --no-run-if-empty
Wenn die Standardeingabe keine Nicht-Leerzeichen enthält, führen Sie den Befehl nicht aus.
Normalerweise wird der Befehl einmal ausgeführt, auch wenn keine Eingabe erfolgt. Diese Option ist ein GNU
Erweiterung.
-s max-chars, --max-chars=max-chars
Höchstens verwenden max-chars Zeichen pro Befehlszeile, einschließlich des Befehls und
Anfangsargumente und die abschließenden Nullen am Ende der Argumentzeichenfolgen.
Der größte zulässige Wert ist systemabhängig und wird als Argument berechnet
Längenbeschränkung für exec, abzüglich der Größe Ihrer Umgebung, abzüglich 2048 Bytes
Kopffreiheit. Wenn dieser Wert mehr als 128 KB beträgt, wird 128 KB als Standardwert verwendet.
andernfalls ist der Standardwert das Maximum. 1 KiB entspricht 1024 Byte. xargs
passt sich automatisch an strengere Einschränkungen an.
--show-limits
Zeigt die vom Betriebssystem vorgegebenen Beschränkungen der Befehlszeilenlänge an
System, xargs' Wahl der Puffergröße und der -s Möglichkeit. Leiten Sie die Eingabe von weiter
/ dev / null (und vielleicht spezifizieren --no-run-if-empty), wenn Sie nicht möchten xargs zu tun
etwas.
-T, - ausführlich
Drucken Sie die Befehlszeile in der Standardfehlerausgabe aus, bevor Sie sie ausführen.
-X, --Ausfahrt
Beenden Sie, wenn die Größe (siehe -s Option) überschritten wird.
--help Drucken Sie eine Zusammenfassung der Optionen an xargs und verlassen.
--Version
Drucken Sie die Versionsnummer von xargs und verlassen.
Beispiele:
gefunden / Tmp -Name Core -Art f -drucken | xargs /bin/rm -f
Suchen Sie nach Dateien mit dem Namen Core im oder unterhalb des Verzeichnisses / Tmp und löschen Sie sie. Beachten Sie, dass dies der Fall sein wird
funktionieren nicht ordnungsgemäß, wenn Dateinamen Zeilenumbrüche oder Leerzeichen enthalten.
gefunden / Tmp -Name Core -Art f -print0 | xargs -0 /bin/rm -f
Suchen Sie nach Dateien mit dem Namen Core im oder unterhalb des Verzeichnisses / Tmp und löschen Sie sie, indem Sie Dateinamen verarbeiten
so, dass Datei- oder Verzeichnisnamen, die Leerzeichen oder Zeilenumbrüche enthalten, korrekt sind
abgewickelt.
gefunden / Tmp -Tiefe -Name Core -Art f -löschen
Suchen Sie nach Dateien mit dem Namen Core im oder unterhalb des Verzeichnisses / Tmp und löschen Sie sie, aber effizienter
als im vorherigen Beispiel (da wir die Notwendigkeit vermeiden, zu verwenden Gabel(2) und exec(2) zu
starten rm und wir brauchen das Extra nicht xargs verarbeiten).
Ausschneiden -d: -f1 < / etc / passwd | sortieren | xargs Echo
Erzeugt eine kompakte Auflistung aller Benutzer im System.
xargs sh -c 'emacs "$@" < /dev/tty' Emacs
Startet nacheinander die Mindestanzahl an Emacs-Kopien, die zum Bearbeiten erforderlich sind
Dateien aufgelistet auf xargs' Standardeingabe. Dieses Beispiel erzielt den gleichen Effekt wie BSDs -o
Option, aber auf flexiblere und tragbarere Weise.
EXIT STATUS
xargs Exits mit folgendem Status:
0, wenn es erfolgreich ist
123, wenn ein Aufruf des Befehls mit dem Status 1-125 beendet wurde
124, wenn der Befehl mit Status 255 beendet wurde
125, wenn der Befehl durch ein Signal unterbrochen wird
126, wenn der Befehl nicht ausgeführt werden kann
127, wenn der Befehl nicht gefunden wird
1, wenn ein anderer Fehler aufgetreten ist.
Exit-Codes größer als 128 werden von der Shell verwendet, um anzuzeigen, dass ein Programm aufgrund eines Fehlers gestorben ist
fatales Signal.
STANDARDS KONFORMITÄT
Ab GNU xargs Version 4.2.9 ist das Standardverhalten von xargs ist nicht logisch
Dateiende-Markierung. POSIX (IEEE Std 1003.1, 2004 Edition) ermöglicht dies.
Die Optionen -l und -i kommen in der 1997er Version des POSIX-Standards vor, erscheinen aber nicht
in der Version 2004 des Standards. Daher sollten Sie stattdessen -L und -I verwenden,
beziehungsweise.
Der POSIX-Standard ermöglicht es Implementierungen, die Größe der Argumente zu begrenzen
exec Funktionen. Diese Grenze könnte bis zu 4096 Byte betragen, einschließlich der Größe des
Umfeld. Damit Skripte portierbar sind, dürfen sie nicht auf einem größeren Wert basieren. Jedoch,
Ich kenne keine Implementierung, deren tatsächliche Grenze so gering ist. Der --show-limits ganz ohne irgendetwas tun oder drücken zu müssen.
kann verwendet werden, um die tatsächlich geltenden Grenzwerte des aktuellen Systems zu ermitteln.
Nutzen Sie xargs online über die Dienste von onworks.net