2012-03-12 4 views
3

У меня есть огромный архив архива tar-файла huge.tar.gz, из которого я хочу извлечь подмножество и поместить его в новый архив tar tar-файлов subset.tar.gz без предварительного извлечения весь огромный файл. Например, если список содержание huge.tar.gz:Запишите подмножество огромного tar-файла в новый tar-файл без распаковки сначала

tar tfz huge.tar.gz 
    dir1/bla/bla.bla 
    dir2/bla/bla.bla 
    dir3/bla/bla.bla 

, как я могу создать новый дегтя архивный файл, содержащий только subset.tar.gz dir1:

tar tfz subset.tar.gz 
    dir1/bla/bla.bla 

ответ

2

Это является двухступенчатый процесс. Прежде всего, необходимо извлечь папку из архива:

tar -zxf huge.tar.gz dir1 

И тогда вам нужно сжать его:

tar -zcf subset.tar.gz dir1 
+0

Спасибо вам, что это просто! – user1069609

+0

Добро пожаловать. –

0

Единственный способ я нашел в donig это удалить все, что вы надеваете» t из архива (если вы используете версию tar, которая поддерживает -delete), вы можете сделать следующее.

gzip -d < huge.tar.gz |tar --delete bla2 bla3 |gzip >part_huge.tar.gz