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

Was ist der Unterschied zwischen xargs mit geschweiften Klammern und ohne in Linux

xargs rm wird rm aufrufen mit allen Argumenten als Parameter mit Leerzeichen.

xargs -i{} rm {} wird rm {} aufrufen für jedes Argument und {} wird durch das aktuelle Argument ersetzt.

Wenn Sie 2 Argumente haben a.txt und b.txt , xargs rm wird dies aufrufen

rm a.txt b.txt

Aber xargs -i{} rm {} wird

aufrufen
rm a.txt
rm b.txt

Das liegt daran, dass -i Option impliziert -L 1 Option, die den Befehl rm bedeutet dauert nur 1 Zeile jedes Mal. Und hier enthält jede Zeile nur 1 Argument.

Überprüfen Sie diesen Ideone-Link, um mehr darüber zu erfahren.


Mit geschweiften Klammern wird ein rm erzeugt Prozess pro Datei. Ohne die geschweiften Klammern xargs so viele Dateinamen wie möglich an jeden rm übergeben Befehl.

Vergleiche

ls | xargs echo

und

ls | xargs -i echo '{}'

Die Option -i (entspricht --replace) erstellt eine Art Platzhalter, in dem xargs die gerade empfangene Eingabe speichert. In Ihrem zweiten Befehl ist der Platzhalter "{}", er funktioniert wie die Option find -exec. Einmal definiert, ersetzt xargs diesen Platzhalter durch die gesamte Eingabezeile. Wenn Ihnen der "{}"-Name nicht gefällt, können Sie einen eigenen definieren:

ls | xargs -iPLACEHOLDER echo PLACEHOLDER

In Ihrem Fall führen beide Befehle zum gleichen Ergebnis. In der zweiten Form machen Sie nur das Standardverhalten mit der Option -i explizit.


Linux
  1. Was ist neu bei rdiff-backup?

  2. Was ist ein Chown-Befehl unter Linux und wie wird er verwendet?

  3. Suchen Sie eine Datei mit den Befehlen Suchen und Suchen in Linux

  4. Was ist falsch an linux/if.h und net/if.h?

  5. Welche Metrik hat unter Linux eine Route ohne Metrik?

So fügen Sie Repositories zu Red Hat Linux mit und ohne Proxy hinzu

Linux-Tail-Befehl:Was es ist und wie man es verwendet

Diff-Befehl in Linux mit Beispielen

Was ist der Unterschied zwischen Linux und Unix?

Was ist Crontab und wie werden Aufgaben in Linux mit Crontab automatisiert?

Was ist Git und wie installiert man Git unter Linux?