Просто упомяну еще один полезный инструмент, это встроенная функция pushd
. С помощью
$ pushd dirname
текущий каталог будет помещен в стек каталогов (вы можете посмотреть на этот стек с помощью dirs
), а текущий каталог будет изменен на имя каталога
. Позже вы можете вернуться в последний (самый верхний в стеке) каталог, используя встроенную команду popd
.
Это должно работать как минимум в bash, zsh, csh и tcsh.
Если вы просто хотите перейти в предыдущий каталог, в котором вы были, на помощь приходит cd -
.
У вас может быть только один целевой каталог. В вашем случае общая цель - / home
или /
. Таким образом, чтобы дублировать удаленный путь в локальной цели, используйте опцию -R
(длинная версия - относительная
):
... --relative REMOTEIP:/home/*/mail/ /
Вы можете добавить - нет -implied-dirs
, чтобы избежать попыток rsync скопировать атрибуты для заданных каталогов (но не для каких-либо подкаталогов).
Сначала проверьте -n
, чтобы убедиться, что это будет делать то, что вы ожидать.
Следующий вариант также позволяет добиться этого, но способ meuh чище.
/usr/bin/rsync -avuz --rsh=ssh --temp-dir=/tmp --port=55556 --include='*/mail' --include='*/mail/**' --exclude='*/*' --rsync-path=/usr/bin/rsync REMOTEIP:/home/ /home > /var/log/rsync/test. log 2>&1