用它们较旧的相同副本替换每个文件的时间戳

时间:2015-12-06 12:27:17

标签: linux bash timestamp

如果bash脚本中的两个目录中都存在文件,我怎么能比较两个目录的文件并替换它们的时间戳?例如,我在Directory1中有file1.txt,在Directory2中有file1.txt(目录是作为参数给出的),它们具有不同的时间戳,我想用旧版本替换较新的时间戳。我该怎么办?

我已经知道我应该使用touch命令(https://askubuntu.com/questions/62492/how-can-i-change-the-date-modified-created-of-a-file),并使用-nt和-ot(compare file's date bash)来比较文件,但是因为我是对于脚本来说还是一个新手,我在弄清楚如何将所有这些放在一起时遇到了一些麻烦。

1 个答案:

答案 0 :(得分:0)

备份您的文件。试试这个:

cd "$1"
for i in *; do
  if [[ -e ../$2/$i ]]; then
    if  [[ $i -ot ../$2/$i ]]; then
      touch -r "$i" "../$2/$i"
    else
      touch -r "../$2/$i" "$i"
    fi
  fi
done