Для синхронизации двух каталогов я запускаю

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 ответ1

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 создаст новую папку dir1 в dir2 чтобы действительно сохранить всю папку dir1 а не только ее содержимое.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .