Home Publikationen HowTo(s) Dateioperationen: umbenennen, kopieren, suchen...
Dateioperationen: umbenennen, kopieren, suchen... Drucken
Sonntag, den 04. Mai 2008 um 15:11 Uhr

In diesem Artikel werden einige Skript dargestellt, die den Umgang mit Dateien erleichtern. Alle Beispiele beziehen sich auf XML-Dateien.

Dateien umbenennen

Folgendes Kommando benennt alle XML-Dateien in XSD-Dateien um,

$ for i in *.xml ; do mv $i `basename $i | sed 's/xml/xsd/g'`; done

oder mit folgendem Kommando

$ rename .xml .xsd *.xml

Der erste Parameter gibt die alte Dateiendung und der zweite Parameter die neue Dateiendung an. Danach folgen die zuändernden Dateien.

Kopieren mit tar und ssh

Es sollen viele kleine XML-Dateien auf einen anderen Rechner kopiert werden. Um den Kopiervorgang zu beschleunigen wird mit tar cf ein Datenstrom erzeugt. Dieser Datenstrom wird über die Standardausgabe auf den ssh-Befehl umgelenkt und auf dem entfernten Rechner wieder mit tar xf von der Standardeingabe gelesen.

$ tar cf - *.xml | ssh example.org "cd /home/user/xml ; tar xf -"

Dieser Datenstrom kann mit tar czf auch komprimiert werden.

$ tar czf - *.xml | ssh example.org "cd /home/user/xml ; tar xzf -"

Mit dem nächsten Befehl wird noch ein Buffer erzeugt, um den Datentransfer noch zu beschleunigen.

$ tar czf - *.xml | buffer -m 10m | ssh example.org "cd /home/user/xml ; tar xzf -"

Ablegen einer Backup-Datei auf einen Server...

$ tar cjvf - /home/user | ssh example.org "cat > /backup/user_20081221.tar.bz2"

..und das wieder herstellen der Daten.

$ ssh example.org "cat /backup/user_20081221.tar.bz2" | tar xjpf -

Suchen nach Dateien

Suche alle Verzeichnisse, ab den aktuellen Verzeichnis, die für alle schreibbar sind.

$ find . -type d -perm /o+w -print

Suche alle Dateien, ab den aktuellen Verzeichnis, die für alle schreibbar sind.

$ find . -type f -perm /o+w -print

Suche alle Dateien, ab den aktuellen Verzeichnis, die für alle schreibbar sind und verhindere dieses.

$ find . -type f -perm /o+w -print | xargs /bin/chmod o-w

Falls im Dateinamen ein Leerzeichen oder Zeilenumbruch enthalten ist (ist bei UNIX-Systemen zulässig), so müssen zusätzliche Parameter gesetzt werden.

$ find . -type f -perm /o+w -print0 | xargs -0 /bin/chmod o-w

Suche alle Dateien, die den letzten 2 Tagen verändert wurden.

$ find . -type f -mtime -2 -print

 

Kommentar hinzufügen

Ihr Name:
Ihre E-Mail-Adresse:
Titel:
Kommentar:
 

Creative Commons LicenseDieses Werk ist unter der Creative Commons
Attribution-No Derivative Works 2.0
lizenziert.