Как использовать rsync без выбора файла - PullRequest
0 голосов
/ 15 марта 2019

Я хотел бы использовать --delete возможность rsync, чтобы стереть все в каталоге назначения.

Что я сейчас делаю:

rsync -zavr --delete ./input_dir_1/ user@host:dest_dir/
rsync -zavr ./input_dir_2/ user@host:dest_dir/
rsync -zavr ./input_dir_3/ user@host:dest_dir/

Но для того, чтобы использовать rsync в цикле, есть ли способ сначала выбрать не входной файл (и использовать --delete, чтобы просто удалить все)? В идеале я хотел бы что-то вроде:

# Delete everything on destination dir
rsync -zavr --delete /dev/null user@host:dest_dir/

# Now iterate over all input directories (could use a for loop)
rsync -zavr ./input_dir_1/ user@host:dest_dir/
rsync -zavr ./input_dir_2/ user@host:dest_dir/
rsync -zavr ./input_dir_3/ user@host:dest_dir/

1 Ответ

0 голосов
/ 15 марта 2019
  1. rsync использует ssh. Почему бы не удалить напрямую? (Будьте осторожны, чтобы не удалить неправильный каталог!)
ssh user@host 'rm -rf dest_dir; mkdir dest_dir'
  1. Вы можете использовать функцию исключения rsync:
rsync -r --exclude='*' --delete-excluded / user@host:dest_dir/

Любая папка будет работать с источником.

...