
Я часто пересылаю большие каталоги, scp
и было бы здорово, если бы я мог каким-то образом сжать каталог, отправить его и распаковать — всё за один раз.
Возможно ли что-то подобное?
решение1
А как насчет использования rsync
вместо этого -z
опции со включенным сжатием?
rsync -az --progress source_dir/* remote_host:/destination_dir
Это также имеет дополнительное преимущество: если файл уже существует и не был изменен в месте назначения, он не будет передан.
решение2
Благодаря ответу @johnshen64 мне удалось придумать что-то довольно хорошее.
tar -zc path/to/source | ssh user@remote tar -zxC path/to/destination
К сожалению, это не показывает прогресса при передаче. Я заметил невероятные улучшения скорости, используя этот метод.
Если кто-нибудь знает, как отобразить прогресс такого перевода, буду очень признателен за помощь :)
решение3
ну, я бы вместо этого использовал tar
tar cf - каталог | ssh-сервер 'tar xf -'
Вы можете добавить v для проверки.
zip должен быть таким же, но tar, по моему мнению, более надежен для Linux.