diff 表示即使与 rsync 同步后文件仍然不同

diff 表示即使与 rsync 同步后文件仍然不同

为了同步两个目录,我运行

diff -r -q path/to/dir1 path/to/dir2 1>/dev/null
if [[ $? == "0" ]]
then
  echo "Directories are exact copies of each other"
else
  rsync -av --delete path/to/dir1 path/to/dir2
fi

但是,如果再次运行脚本,diff 显示目录仍然不同。

然而,当创建两个空文件夹test和时sync,diff 表示它们是相同的。

答案1

你需要:

diff -r -q path/to/dir1 path/to/dir2/dir1 1>/dev/null
if [[ $? == "0" ]]
then
  echo "Directories are exact copies of each other"
else
  rsync -av --delete path/to/dir1 path/to/dir2
fi

因为 rsync 将创建一个新文件夹dir1dir2真正保存整个dir1文件夹而不仅仅是其内容。

相关内容