bash | schnelles Backup anlegen

Bei Jann habe ich Folgendes unter dem Stichwort In der Shell schnell mal alle Dateien im Verzeichnis nach *.bak sichern gelesen:

Kurznotiz, gilt für Mac / Linux / Unix / (bei Windows hilft nur “format c:” ;) )
Oft muss ich in einem Ordner schnell mal alle Dateien sichern als Backup da ich sie im nächsten Moment überschreibe. Um nicht den ganzen übergeordneten Ordner gleich komplett sichern zu müssen sondern nur die Dateien im aktuellen Ordner ohne Unterverzeichnisse zu sichern habe ich folgenden befehl:
for i in *.*; do cp $i $i.bak ;done
Alle Dateien im Ordner werden dann von xyz.txt nach xyz.txt.bak kopiert, wer anstelle des kopieren die Daten verschieben will ersetzt im script einfach “cp” mit “mv” Wer in einem Verzeichnis nur bestimmte Dateitypen z.B. *.html sichern mag macht dies dann so:
for i in *.html; do cp $i $i.bak ; done
somit werden an alle *.html Dateien im Ordner nach *.html.bak gesichert Das gleiche geht mit jedem beliebigen Dateityp ^^

Lange habe ich drüber nachgedacht, da ich den Ansatz etwas zu kompliziert finde und da ich gerade in dem Buch Einführung in die BASH lese und mal schauen wollte, was davon bei mir hängen geblieben ist, habe ich folgendes ausprobiert:

tar -cz --no-recursion -f backup-$(date +%F-%H-%M).tar.gz *

Das Ganze als Alias definiert mit Übergabe der Dateiextension sieht dann so aus:

alias archive='tar -cz --no-recursion -f backup-$(date +%F-%H-%M).tar.gz $1'

Damit kann man später schnell mit

archive *.html

schnell alle HTML-Files eines Verzeichnisses sichern und weiß gleich von wann die Sicherung ist.

2 Gedanken zu „bash | schnelles Backup anlegen

  1. Pingback: controlc.de» Blogarchiv » bash | Backups mit tar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.