Как сжать каталог, передать его через scp и распаковать одной командой?

Как сжать каталог, передать его через scp и распаковать одной командой?

Я часто пересылаю большие каталоги, 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.

Связанный контент