2016-08-22 54 views
0

比方说,我有两个具有相同结构的目录,并且我希望将文件的时间戳设置为第一个文件的时间戳,当且仅当文件内容相同时。在目录上同步时间戳

我在这里给出了一个答案,但如果你们有更少的笨拙和更有效的方式来实现目标,那将是完美的。

回答

1

一个可能的解决方案是该脚本:

#!/bin/bash 

OLDDIR=$(readlink -f $1) 
NEWDIR=$(readlink -f $2) 

cd $NEWDIR 
for file in $(find .); do 
    file2=$OLDDIR/$file 
    if test -e "$file2" && diff >/dev/null -q "$file" "$file2" ; then 
     touch -r "$file2" "$file" 
    fi 
done 
2

一个更简单的方法就是:

rsync -uav /path/to/dir1/ /path/to/dir2 

(除去v抑制--verbose输出)

注:的尾随'/' followi ng dir1。它告诉rsync采取的内容dir1而不是dir1本身。