Mit rsync nur bestimmte Dateien kopieren

Endlich wollte ich einmal die Fernseh-Aufnahmen in ein brauchbares Videoformat konvertieren. Leider werden Pro Aufnahme 6 Dateien mit den unterschiedlichsten Aufgaben erstellt. Da ich nur die .ts Dateien haben wollte, dachte ich mir, ich nutze find um die Dateien zu kopieren.

find . -iname „*.ts“ -exec cp {} ./Mediathek \;

Leider gibt es da einen kleinen Haken. Die Aufnahmen sind in themen-spezifische Ordner unterteilt. Der find Befehl hilft hier nicht weiter, weil dieser alle gefundenen Dateien in einen Ordner kopiert.

Jetzt wollte ich aber die Orderstruktur behalten. Also habe ich mich auf die Suche nach dem passenden Tool gemacht. Bei den mir bekannten Tools bin ich auf rsync gestoßen. Dieses Tool eignet sich am Besten für einen Abgleich von Dateien, Ordnern oder ganzen Systemen auf ein anderen Medium…

Der einfache Befehl:

rsync -avn –include=’*.ts‘ ./ ./Mediathek

hat leider nicht zu den passenden Ergebnis geführt. Auch die Filter-Option hatte immer die falschen Dateien zur Auswahl.

Erst die richtige Kombination der Optionen –include und –exclude brachte den Erfolg:

rsync -avn –include=’*/‘ –include=’*.ts‘ –exclude=’*‘ ./ ./Mediathek

Das schöne an diesem Befehl ist die Flexibilität. Man kann in dem zweiten –include den String einfach anpassen und schon passt der Befehl auf andere Dateien.

So einfach kann das sein.

Viel Spaß beim synchronisieren.

Bobby

Robert Friemer

Robert Friemer arbeitet mit Windows seit Version 3.11, mit Linux seit Version 2.0 und mit FreeBSD seit Version 3.8. Er hat schon so einige Irrungen und Wirrungen in der IT mit erlebt und ist seit einigen Jahren (fast) Windows-los. Dank Pinguin und vor allem dank Beastie.

More Posts - Website