Hallo,
ich versuche seit langem, ein Bash-Script zum automatisierten Kopieren des Home-Verzeichnisses auf eine externe Festplatte zu schreiben, habe es aber bislang nicht hinbekommen. Das Skript soll im ersten Schritt alle Verzeichnisse und Dateien im Home-Verzeichnis auf die Festplatte kopieren. Beim nächsten Aufruf soll es sinnvollerweise nur die aktualisierten Files des Home-Verzeichnisses auf die externe Festplatte kopieren. Die versteckten Dateien soll es dabei NICHT kopieren, da die -u Option beim cp-Befehl manchmal Probleme bei versteckten Dateien bereitet. Im zweiten Schritt soll das Skript nun alle versteckten Dateien auf die ext. Platte kopieren (ohne Update -> also ohne -u bei cp). Alle Datei-Attribute sollen erhalten bleiben. Ich habe mir folgende Gedanken dazu gemacht:
Leider kopiert diese Schleife auch die versteckten Dateien mit. Wie kann ich nun hier, z.B. mit einer if-Anweisung, die versteckten Dateien ausschließen?
Die folgende Schleife:
soll eigentlich nur die versteckten Dateien kopieren, kopiert aber auch die nicht versteckten mit. Wo liegt der Fehler?
Vielen Dank im Voraus
ich versuche seit langem, ein Bash-Script zum automatisierten Kopieren des Home-Verzeichnisses auf eine externe Festplatte zu schreiben, habe es aber bislang nicht hinbekommen. Das Skript soll im ersten Schritt alle Verzeichnisse und Dateien im Home-Verzeichnis auf die Festplatte kopieren. Beim nächsten Aufruf soll es sinnvollerweise nur die aktualisierten Files des Home-Verzeichnisses auf die externe Festplatte kopieren. Die versteckten Dateien soll es dabei NICHT kopieren, da die -u Option beim cp-Befehl manchmal Probleme bei versteckten Dateien bereitet. Im zweiten Schritt soll das Skript nun alle versteckten Dateien auf die ext. Platte kopieren (ohne Update -> also ohne -u bei cp). Alle Datei-Attribute sollen erhalten bleiben. Ich habe mir folgende Gedanken dazu gemacht:
Code:
for hv in /home/meinvz/*; do
kdialog --yesno "Daten wirklich auf ${hv} kopieren?" || exit
cp -rupv ${hv} /media/disk/home/
done
Leider kopiert diese Schleife auch die versteckten Dateien mit. Wie kann ich nun hier, z.B. mit einer if-Anweisung, die versteckten Dateien ausschließen?
Die folgende Schleife:
Code:
for hv in /home/meinvz/.*; do
cp -rpv ${hv} /media/disk/home/
done
soll eigentlich nur die versteckten Dateien kopieren, kopiert aber auch die nicht versteckten mit. Wo liegt der Fehler?
Vielen Dank im Voraus