Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:pipes_und_umleitungen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
Nächste Überarbeitung Beide Seiten, nächste Überarbeitung
admin_grundlagen:pipes_und_umleitungen [2014/06/24 08:32]
127.0.0.1 Externe Bearbeitung
admin_grundlagen:pipes_und_umleitungen [2020/12/04 14:11]
holger_jakobs [Ausgabe eines Befehls mit zweitem Befehl weiterverarbeiten]
Zeile 14: Zeile 14:
 Berechtigung der in der Datei ''​bilder.txt''​ aufgeführten Dateien mit ''​chmod''​ ändern: Berechtigung der in der Datei ''​bilder.txt''​ aufgeführten Dateien mit ''​chmod''​ ändern:
   xargs chmod g+w < /​tmp/​bilder.txt   xargs chmod g+w < /​tmp/​bilder.txt
 +''​xargs''​ liest die (durch ein Zeilenende ''​\n''​ getrennten) Dateinamen (ggf. mit Pfad) aus der Standardeingabe und hängt diese als Liste an das Kommando (hier ''​chmod g+w''​) an.
 ===== Ausgabe eines Befehls mit zweitem Befehl weiterverarbeiten ===== ===== Ausgabe eines Befehls mit zweitem Befehl weiterverarbeiten =====
 jpg-Bilder in ''​doc''​ suchen und Berechtigung mit ''​chmod''​ ändern: jpg-Bilder in ''​doc''​ suchen und Berechtigung mit ''​chmod''​ ändern:
Zeile 24: Zeile 24:
   mv Eigene\ Dateien doc   mv Eigene\ Dateien doc
  
-Alle Grafikdateien in das Verzeichnis Bilder kopieren:+Alle JPEG-Grafikdateien in das Verzeichnis Bilder kopieren:
   find / -name "​*jpg"​ -exec cp {} Bilder/ \; 2>/​dev/​null   find / -name "​*jpg"​ -exec cp {} Bilder/ \; 2>/​dev/​null
 +Hier führt ''​find''​ für jede gefundene Datei das Kommando ''​cp''​ aus. Bei sehr vielen Dateien kann das sehr langsam werden.
   find / -name "​*jpg"​ -print0 2> /dev/null | xargs -0 cp -t Bilder   find / -name "​*jpg"​ -print0 2> /dev/null | xargs -0 cp -t Bilder
 +Hier schreibt ''​find''​ die gefundenen Namen durch ein Nullbyte ''​\0''​ getrennt in die Pipe, aus der ''​xargs''​ liest. Durch die Option ''​-0''​ erwartet ''​xargs'',​ dass die Dateinamen nicht durch ein Zeilenende (''​\n''​),​ sondern durch ein Nullbyte getrennt sind. ''​xargs''​ baut für ''​cp''​ eine lange Parameterliste aus Dateinamen zusammen und übergibt sie. Falls mehr Namen ankommen als auf eine Kommandozeile passen, wird ''​cp''​ ggf. mehrfach aufgerufen, aber viel seltener als im vorigen Beispiel. ​
 +
 +Weil ''​cp''​ üblicherweise das Ziel als letzten Parameter erwartet, muss hier die Option ''​-t''​ verwendet werden, um das Zielverzeichnis zu Beginn anzugeben. ''​xargs''​ kann halt nur am Ende des Kommandos Parameter anfügen.
 +'
 +  ​
 +  ​
 ===== Fehlerausgabe und Standardausgabe zusammenfassen ===== ===== Fehlerausgabe und Standardausgabe zusammenfassen =====
 Lange Version, geht auch mit anderen Shells als bash: Lange Version, geht auch mit anderen Shells als bash:
admin_grundlagen/pipes_und_umleitungen.txt · Zuletzt geändert: 2022/11/21 14:32 von ingo_wichmann