Frage Verwenden Sie rsync, um nur das Änderungsdatum von Ordnern / Dateien zu ändern


Ich nur 1,8 TB von Daten von einer externen Festplatte auf eine interne Festplatte mit rsync übertragen, aber ich habe die „-t“ Flag nicht hinzufügen, so dass die „Änderungsdatum“ für jede Datei auf der internen Festplatte ist nun der Datum Ich habe rsync ausgeführt.

Gibt es eine Möglichkeit, die Daten von den Quelldateien in die Zieldateien zu kopieren, ohne die Zieldateien löschen zu müssen und rsync erneut mit dem Flag "-t" auszuführen?


1
2017-11-20 17:30


Ursprung




Antworten:


Das Berühren von "Modifiziert" für eine Datei aus einer anderen Referenzdatei kann nicht mit rsync durchgeführt werden.

Allerdings können wir die touch Befehl dazu.

touch -m -r source/path/file dest/path/file

Oben wird das "geänderte" Datum vom Quell- bis zum Zieldateipfad angezeigt.

Dies kann ferner ein Skript sein, z. unten für alle Dateien in einem angegebenen Zielverzeichnis vorausgesetzt, die Dateinamen sind identisch:

 for i in *; do touch $i -m -r /path/to/source/$i; done

0
2017-11-20 19:22



Danke Takkat! Ich suche nach etwas, das durch mehrere Verzeichnisse rekursiv ist. Jemand in einem anderen Forum hat folgendes gepostet: 'find / home / abcdefg / -exec touch {} \; Das Verzeichnis abcdefg selbst wird eingeschlossen. " - user217685
Niemals vorher gefunden. Nicht ganz sicher, was die Klammern oder der letzte Schrägstrich auch tun. - user217685
@ user217685: ja find ist besser für die Rekursivität. Das {} ist ein Platzhalter für den gefundenen Dateinamen, aber nachdem ich gestern einen Schnelltest gemacht habe, habe ich keine gewünschten Ergebnisse auf verschiedenen Pfaden bekommen, also habe ich den Loop-Ansatz gepostet. - Takkat


Rekursiv mit find und touch

cd /source/dates/dir
find . -exec touch -c -m -r {} /destination/dates/dir/{} \;

Das Ändern des Verzeichnisses ist wichtig, um einen relativen Pfad zu erhalten find.


0
2018-04-14 21:20