Извлечь несколько членов из архива tar и передать по сети
редактировать: я хочу дополнительно member01 а также member02 и каталог blah/
tarball_1.tar.gz содержит каталог test/ с 20 файлами. Я хочу извлечь только член test/member01 а также test/member02 и каталог blah/ и скопируйте их в другой "remote_host", используя ssh/scp.
Можно ли это сделать как однострочник? Я подумал об использовании tar, pax, или же cpio но я думаю, я еще не очень разбираюсь в этих утилитах.
1 ответ
Решение
tar -xzOf file.tar.gz file_you_want_to_extract | ssh user@host 'cat > /path/to/destination_file'
-x: Экстракт-z: Черезgzip-f: Взять в качестве входного файла.-O: Извлечь в стандартный вывод
file_you_want_to_extract извлекается из file.tar.gz на стандартный вывод, по трубопроводу ssh , который работает cat на удаленном хосте и записывает его стандарт в удаленный destination_file , Конечно, вы захотите убедиться, что у вас есть разрешение на запись в нужный файл назначения на удаленном хосте.