如果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)来比较这些文件,但是由于我对脚本编写还比较陌生,所以我很难找出如何将所有这些放在一起。

最佳答案

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

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

08-19 13:36