Як gzip каталог, передача через scp та розпакування в одній команді?


11

Я часто передаю великі каталоги scpі було б солодко, якби я міг якось стиснути каталог, надіслати його і розпакувати все в одне ціле.

Чи можливо щось подібне?

Відповіді:


29

Як щодо використання rsyncз -zопцією, увімкненою для стиснення?

rsync -az --progress source_dir/* remote_host:/destination_dir

Це також має додаткову перевагу, що якщо файл вже існує та не змінився у пункті призначення, він не буде переданий.


7

Завдяки відповіді @ johnshen64 мені вдалося придумати щось досить приємне

tar -zc path/to/source | ssh user@remote tar -zxC path/to/destination

На жаль, це не демонструє прогресу в міру передачі. Я помітив неймовірні покращення швидкості за допомогою цього методу.

Якщо хтось знає, як прогресувати такий переказ, я дуже вдячний за допомогу :)


1
Вставте pvміж дьогтем і сш .
користувач1686

Це чудово, якщо у вас немає rsync
Саймон Хартчер

2

добре, я б використав дьоготь замість цього

tar cf - каталог | ssh-сервер 'tar xf -'

ви можете додати v для підтвердження.

zip повинен бути таким же, але на мій погляд, tar є більш надійним для Linux.


+1 дякую за вашу допомогу; це дістало мене на півдорозі. Мені вдалося придумати рішення, яке не використовує криптовалюти -, також використовує стиснення gzip і дозволяє націлити на каталог призначення.
macek

@macek: Зауважте, що це f -може знадобитися в інших операційних системах, оскільки більшість версій tar намагаються прочитати з магнітоли в іншому випадку. Читання з stdin за замовчуванням залежить від GNU.
користувач1686
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.