47

我正在开发一个类似 Dropbox 的小型 bash 脚本,如何在不使用rsync 的情况下比较 2 个文件的日期并用新文件替换旧文件有没有简单的方法来处理这个?SHA1可以帮助我了解更新吗?

4

4 回答 4

117

test您可以使用-nt(newer than) 和-ot(older than) 运算符比较文件修改时间:

if [ "$file1" -ot "$file2" ]; then
    cp -f "$file2" "$file1"
fi
于 2013-02-10T21:35:27.200 回答
9

这是一个POSIX解决方案:

find -name file2 -newer file1
于 2017-01-29T20:16:25.207 回答
5

或者更短更好看,看看man stat

stat -c %y file
于 2016-04-22T13:35:21.983 回答
2

怎么样

 stat file|awk -F': ' '/Modify: /{print $2}'
于 2013-02-10T21:35:25.320 回答