Записать подмножество огромного tar-файла в новый tar-файл без предварительной распаковки - PullRequest
3 голосов
/ 12 марта 2012

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 12 марта 2012

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

tar -zxf huge.tar.gz dir1

А потом нужно сжать его:

tar -zcf subset.tar.gz dir1
0 голосов
/ 17 января 2013

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

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