如何保存和恢复文件的创建/修改日期?

Vi.*_*Vi. 8 linux filesystems date-modified

我已将一堆文件从一台服务器复制到另一台服务器,现在这些文件的日期已重置为当前日期。

如何在旧服务器上备份文件的日期并在新服务器上恢复它们​​(无需重新传输所有文件)?

Vi.*_*Vi. 9

以下是保存和恢复所有 {c,n,a} 次文件和目录的脚本:

节省:

find / -mount -print0 | perl -ne 'INIT{ $/ = "\0"; use File::stat;} chomp; my $s = stat($_); next unless $s; print $s->ctime . "/" . $s->mtime . "/" . $s->atime ."/$_\0"; ' > dates.dat
Run Code Online (Sandbox Code Playgroud)

恢复:

cat dates.dat |  perl -ne 'INIT{ $/ = "\0";} chomp; m!^([0-9]+)/([0-9]+)/([0-9]+)/(.*)!s or next; my ($ct, $mt, $at, $f) = ($1, $2, $3, $4); utime $at, $mt, $f;'
Run Code Online (Sandbox Code Playgroud)

虽然它没有设置 ctime(inote-change 时间)


小智 6

我有一个 Python 脚本可以在https://github.com/robertknight/mandrawer/blob/master/save-file-attrs.py执行此操作

在原始服务器上运行:

save-file-attrs.py save scp .saved-file-attrs <user>@<dest-server>:<path>

在目标服务器上运行:

cd <path> save-file-attrs.py restore

这将恢复文件属性。