Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung Nächste Überarbeitung Beide Seiten, nächste Überarbeitung | ||
admin_grundlagen:pipes_und_umleitungen [2012/10/12 16:16] ingo_wichmann |
admin_grundlagen:pipes_und_umleitungen [2014/06/24 08:32] 127.0.0.1 Externe Bearbeitung |
||
---|---|---|---|
Zeile 5: | Zeile 5: | ||
===== Ausgabe eines Befehls in Datei umleiten ===== | ===== Ausgabe eines Befehls in Datei umleiten ===== | ||
- | jpg-Bilder in / suchen und Ergebnis in ''bilder.txt'' speichern: | + | jpg-Bilder in ''doc'' suchen und Ergebnis in ''bilder.txt'' speichern: |
- | find / -xdev -name "*.jpg" > /tmp/bilder.txt | + | find doc/ -xdev -name "*.jpg" > /tmp/bilder.txt |
Das Selbe, aber Fehlermeldungen unterdrücken: | Das Selbe, aber Fehlermeldungen unterdrücken: | ||
- | find / -xdev -name "*.jpg" > /tmp/bilder.txt 2> /dev/null | + | find doc/ -xdev -name "*.jpg" > /tmp/bilder.txt 2> /dev/null |
===== Dateiinhalt mit Befehl weiterverarbeiten ===== | ===== Dateiinhalt mit Befehl weiterverarbeiten ===== | ||
- | Änderungszeit der in der Datei ''bilder.txt'' aufgeführten Dateien mit ''touch'' ändern: | + | Berechtigung der in der Datei ''bilder.txt'' aufgeführten Dateien mit ''chmod'' ändern: |
- | xargs touch < /tmp/bilder.txt | + | xargs chmod g+w < /tmp/bilder.txt |
===== Ausgabe eines Befehls mit zweitem Befehl weiterverarbeiten ===== | ===== Ausgabe eines Befehls mit zweitem Befehl weiterverarbeiten ===== | ||
- | jpg-Bilder in / suchen und Änderungszeit mit ''touch'' ändern: | + | jpg-Bilder in ''doc'' suchen und Berechtigung mit ''chmod'' ändern: |
- | find / -xdev -name "*.jpg" 2> /dev/null | xargs touch | + | find doc/ -xdev -name "*.jpg" 2> /dev/null | xargs chmod g-w |
Verbesserte Version, die auch mit Leer- und Sonderzeichen in Dateinamen klar kommt: | Verbesserte Version, die auch mit Leer- und Sonderzeichen in Dateinamen klar kommt: | ||
- | find Eigene\ Dateien/ -type f -print0 | xargs -0 chmod a-x | + | mv doc 'Eigene Dateien' |
+ | find Eigene\ Dateien -xdev -name "*.jpg" -print0 2> /dev/null | xargs -0 chmod g+w | ||
+ | mv Eigene\ Dateien doc | ||
+ | Alle Grafikdateien in das Verzeichnis Bilder kopieren: | ||
+ | find / -name "*jpg" -exec cp {} Bilder/ \; 2>/dev/null | ||
+ | find / -name "*jpg" -print0 2> /dev/null | xargs -0 cp -t Bilder | ||
===== 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: | ||
- | find / -xdev -name "*.au" > /tmp/bilder.txt 2>&1 | + | find doc/ -xdev -name "*.jpg" > /tmp/bilder.txt 2>&1 |
Nur mit bash: | Nur mit bash: | ||
- | find / -xdev -name "*.au" &> /tmp/bilder.txt | + | find doc/ -xdev -name "*.jpg" &> /tmp/bilder.txt |
+ | ===== Fehlerausgabe und Standardausgabe mit zweitem Befehl weiterverarbeiten ===== | ||
+ | find /var -xdev -type d -ls 2>&1 | less | ||
+ | |||
+ | Nur mit bash: | ||
+ | find /var -xdev -type d -ls |& less | ||
Zeile 36: | Zeile 46: | ||
wc -l ausgabe1 ausgabe2 | wc -l ausgabe1 ausgabe2 | ||
+ | Sonderfall: stdout und stderr unterschiedlich weiterverarbeiten | ||
+ | ((ls -l null eins |nl) 3>&1 1>&2 2>&3 | grep -v 'spezielle fehlermeldung' ) 3>&1 1>&2 2>&3 | ||
+ | Es werden dazu stdout und stderr zweimal reihum getauschst. | ||
====== Links ====== | ====== Links ====== | ||
* http://www.tldp.org/LDP/abs/html/io-redirection.html | * http://www.tldp.org/LDP/abs/html/io-redirection.html | ||