Perl/Bash 解决方案用于测试文件夹是否已更改,然后创建其副本

Perl/Bash 解决方案用于测试文件夹是否已更改,然后创建其副本

我想为一个非常基本的备份系统编写一个脚本,该系统以递归方式检查目录自另一个目录(备份)创建之日起是否存在任何更改,如果发现更改,则创建另一个按顺序从上一个备份递增的备份。

换句话说,我正在寻找相当于我可以问 rsync 的东西,“如果我现在运行你,你会同步什么吗?” 如果结果是“真”/“是”,那么我可以测试该结果并将整个目录复制到新文件夹,而不是同步目录。

想象一下这个伪代码:

$directoryModDate = [command to find date of most recently modified in directory or subdirectories thereof];
$mostRecentBackupDate = [command to find date most recent backup folder was created, e.g. backup1, backup2, backup3...];

if ($directoryModDate > $mostRecentBackupDate) {
     copy "/path/to/source", $backupDestination;
     say STDOUT "New backup folder created.";
}
else {
     say STDOUT "Previous backup is current."
}

答案1

检查
-n, --dry-run
rsync 的选项,这可能是为您创建答案的途径。

但请注意,这
$ rsync -avP source dest
很可能完全取代您的脚本。

相关内容