витягнути кілька членів з архіву смоли та труби через мережу


9

Редагування: Я хочу EXTRA member01і member02та каталогblah/

tarball_1.tar.gzмістить каталог test/з 20 файлами. Я хочу витягнути лише учасників test/member01та test/member02каталогів blah/і скопіювати їх на інший "віддалений_хост" за допомогою ssh / scp.

Чи можна це зробити як однолінійний? Я розглядав питання про використання tar, paxабо, cpioале, мабуть, ще не дуже досвідчений з цими утилітами.

Відповіді:


15
tar -xzOf file.tar.gz file_you_want_to_extract | ssh user@host 'cat > /path/to/destination_file'
  • -x : Витяг
  • -z : Через gzip
  • -f : Взяти файл як вхідний.
  • -O : Екстракт до stdout

file_you_want_to_extractВилучають із file.tar.gzстандартної продукції, який надходить в ssh, який працює catна віддалений хост і записує його в стандарт на пульті дистанційного керування destination_file. Звичайно, ви хочете переконатися, що у вас є дозвіл на запис до потрібного файлу призначення на віддаленому хості.


У моєму початковому дописі мені було не зрозуміло :) Мені потрібно витягти більше одного члена, плюс каталог.
Феліпе Альварес

повинен бути tar -xz0f: після fприходить ім'я архіву
Феліпе Альварес

1
Вилучення декількох членів стане безладним, якщо ви хочете, щоб вони були однолінійними, оскільки вилучення декількох файлів у stdout не має сенсу. Вам, ймовірно, доведеться tarдля кожного, який ви бажаєте витягти, а потім scp -r member1 member2 blah user@host:/destination/folder/скопіювати їх. Якщо ви дійсно хочете зробити його однорядним, ви можете об'єднати всі ці команди &&. Більш практичним варіантом є просто зробити сценарій, який також повторюється через параметри командного рядка та виконує tarдля кожного, а потім scpусі їх у кінці.
атанімір

ааааа, бачу. Тож немає "легкого" однолінійного методу. Дякую :-)
Феліпе Альварес

2
Крім того, якщо "однолінійний" важливіший, ніж "скільки часу займає", ви можете передавати весь архів через ssh і витягти потрібних членів з іншого боку "cat file.tar.gz | ssh user @ host ' tar zxvf file1 file2 dir1 '
Колін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.