W styczniu 2015 r. Przesłałem niektóre pliki z utworzonego obrazu kopii zapasowej na nowy dysk twardy. Ten transfer nie zachował znaczników czasu, więc w zasadzie każdy plik zawiera znacznik czasu z 20 stycznia.
Od tego czasu wiele plików zostało zmodyfikowanych, nowe pliki zostały utworzone itp., Ale wiele innych plików jest nadal identycznych (oprócz sygnatury czasowej) z kopiami na obrazie dd.
Chciałbym rekurencyjnie kopiować znaczniki czasu z plików obrazu dd do pasujących plików na nowym dysku, ale tylko wtedy, gdy pliki są identyczne (tj. Tylko jeśli pliki nie zostały zmodyfikowane od czasu oryginalnej kopii).
Próbowałem różnych rzeczy z rsync, dotykiem itp., Ale nie byłem w stanie tego rozgryźć. Myślę, że coś takiego jak poniższy kod psuedocode zadziała, ale jestem bardzo obeznany ze skryptami bash.
for each file_in_dd_image
if (md5sum(file_in_dd_image) == md5sum(file_on_harddisk))
touch file_on_harddisk --reference=file_in_dd_image
A może nawet lepiej, ponieważ działałoby to również, jeśli plik został przeniesiony od czasu przeniesienia, czy istnieje jakiś sposób na przetworzenie danych wyjściowych jdupes -rO dd_image harddisk
?
Każda pomoc byłaby bardzo mile widziana!
unison
ztimes
przełącznikiem. Zsynchronizuje znaczniki czasowe plików. Jednak nie ustawi znaczników czasu katalogu.