Hi
Dieser Beitrag und Joches Lösung (und insbesondere, was er über die Anzahl der grep-Prozesse sagte), fürhten bei mir zu einer Frage zu xargs:
viewtopic.php?t=1029180
Die Länge eines Befehls in der Bash ist ja auf eine bestimmte Anzahl von Argumenten begrenzt. Nimmt xargs diesen Wert und startet gegebensfalls mehr Prozesse, wenn die Argumentliste zu lang wäre?
Allgemeine Frage bzgl. xargs
-
- prolinux-forum-admin
- Posts: 1444
- Joined: 26. Jun 2004 21:18
- Contact:
> Nimmt xargs diesen Wert und startet gegebensfalls mehr Prozesse, wenn die Argumentliste zu lang wäre?
Sieht so aus:
Sieht so aus:
MfG, Klopskuchen(man xargs)
--max-procs=max-procs, -P max-procs
Run up to max-procs processes at a time; the default is 1. If
max-procs is 0, xargs will run as many processes as possible at a
time. Use the -n option with -P; otherwise chances are that only
one exec will be done.
When all else fails, read the instructions .
Exakt. Wobei xargs aber so geschickt vorgeht, dass man es sogar in einer Pipe verwenden kann. Mal so als (sinnfreies) Beispiel:funtioniert auch wie erwartet, wenn xargs mehrere greps starten muss, weil die Liste der Argumente zu lang werden würde.
Bei einigen Kommandos kann es aber trotzdem zu Problemen führen. Man denke beispielsweise an tar: Der erste Prozess erstellt das Archiv mit den Dateien 1 bis X, der zweite möchte ein Archiv gleichen Namens mit den Dateien X+1 bis 2*x anlegen...
Übrigens möchte ich in aller Bescheidenheit auf einen kleinen Artikel hier auf Pro-Linux zum Thema xargs hinweisen: http://www.pro-linux.de/t_shell/xargs.html
Jochen
Code: Select all
find / print | xargs grep "irgendwas" | less
Bei einigen Kommandos kann es aber trotzdem zu Problemen führen. Man denke beispielsweise an tar: Der erste Prozess erstellt das Archiv mit den Dateien 1 bis X, der zweite möchte ein Archiv gleichen Namens mit den Dateien X+1 bis 2*x anlegen...
Übrigens möchte ich in aller Bescheidenheit auf einen kleinen Artikel hier auf Pro-Linux zum Thema xargs hinweisen: http://www.pro-linux.de/t_shell/xargs.html
Jochen
Die grösste Lüge der EDV? "Mal eben..."