Разархивирование одного файла зависает

Разархивирование одного файла зависает

Я пытаюсь разархивировать очень большой каталог. Вот что работает для распаковки всего этого:

$ sudo tar -xjf itunes20140618.tbz --verbose
x itunes20140618/
x itunes20140618/genre_artist
x itunes20140618/imix_type
...etc...

Однако, если я попытаюсь разархивировать только один файл, это будет сделано правильно, но затем команда зависнет на неопределенный срок. Кроме того, она не выводит никаких выходных данных при использовании оператора --verbose. Вот пример:

$ sudo tar -xjf itunes20140618.tbz itunes20140618/imix --verbose
[ nothing prints...it just hangs. But it does un-tar that single file ]

решение1

Не указывайте параметры после аргументов, не являющихся параметрами, особенно с помощью tarwhich, которая является нестандартной командой с несколькими реализациями, поддерживающими несколько старых и новых способов анализа параметров, действий и аргументов.

В:

tar -xjf itunes20140618.tbz itunes20140618/imix --verbose

itunes20140618.tbzбудет аргументом для -fопции, itunes20140618/imixдополнительный неопциональный аргумент, взятый как имя члена для извлечения из архива. --verboseБудет ли рассматриваться как дополнительный аргумент (имя другого члена для извлечения) или как опция, будет зависеть от реализации и версии tarи даже, возможно, от того, как он был скомпилирован или от среды выполнения.

В вашем случае вполне может быть, что вы tarодин из тех (большинства), кто не считает это --verboseглобальным вариантом.

Здесь используйте:

tar -xjf itunes20140618.tbz --verbose itunes20140618/imix

Или более портативный:

bunzip2 < itunes20140618.tbz | tar xvf - itunes20140618/imix

Или замените tarна стандартный (хотя и менее переносимый) pax:

bunzip2 < itunes20140618.tbz | pax -vr itunes20140618/imix

решение2

Вы используете, bzip2что не являетсяархиватор файловпоэтому tarпо сути действует как file archiverи bzip2сжимает их.

Например, архивация набора файлов с помощью tar и последующее сжатие полученного архивного файла с помощью gzip приводит к созданию файла с расширением .tar.gz.

Однако этот подход имеет один недостаток, как указано в статье в Википедии:

Извлечение или изменение одного файла — сложная задача. Извлечение одного файла требует распаковки всего архива, что может занять много времени и места.

Поэтому я предлагаю использовать только .tarили , .zipили .rar, если вы часто извлекаете один файл.

Связанный контент