在shell脚本中,如何比较两个文件并知道哪一个是最新的?

我有两个文件夹A和B.A是我的工作目录,B是我的备份文件夹。

我比较两个文件夹中的文件和备份(从A到B),如果A中有任何更改

所以,我用:

diffResult=( diff -q "${A/file-nmae}" "${B/file-name}" ) if [ -n "${diffResult}" ]; then <code to copy> else <something else> fi 

唯一的问题是,在某些情况下,B中的文件比A更新。所以我不想在这种情况下进行备份。 我该如何做,以及如何检查哪个文件更新?

最简单的方法是使用if主表达式-nt ie

 if [ "A/fileX" -nt "B/fileX" ] then mv A/fileX B/fileX done 

[文档]说:

[FILE1 -nt FILE2]如果FILE1比FILE2更新,或者FILE1存在,FILE2不存在,则为真。

在b.txt中找到不同的

 fgrep -v -f a.txt b.txt 

在a.txt中找到不同的部分

 fgrep -v -f b.txt a.txt 

查找最后修改的文件,最后修改文件

 ls -lrt 

找到更改和最后修改的使用

 fgrep -v -fab && ls -lrt ab | tail -1