cp
我使用一个小脚本将配置文件列表复制(使用)到另一个设备。我想知道如何快速检查文件自上次以来是否被修改,然后再执行此操作并耗尽设备的资源。
答案1
假设您config
本地有一个目录与设备上的目录相对应config
,并且您仅在本地进行更改然后将其同步到设备,那么这rsync
是执行同步的好工具。
将本地目录同步到设备目录:
$ rsync -av config/ [email protected]:path/to/config/
要删除设备上不再存在于本地config
目录中的文件,请将--delete
标志添加到rsync
:
$ rsync -av --delete config/ [email protected]:path/to/config/
交换config/
并将[email protected]:path/to/config/
目录config
从设备备份到本地目录(稍微不清楚您想在问题中走哪个方向)。
答案2
if ! diff -q file1 file2 > /dev/null 2>&1;
then
echo "Files are changed"
else
echo "Files not changed"
fi
答案3
一般来说diff/cmp
很好,但如果文件很大,比较可能需要一段时间。更快速的方法是通过比较时间戳stat
或通过比较校验和md5sum