Поиск по сайту:

Как извлечь файлы из файла .tar.bz2 или .tar.gz в Linux


Вот все, что вам нужно знать о распаковке файла в Linux

Ключевые выводы

  • Файлы Tar — это сжатые архивы, используемые в дистрибутивах Linux, таких как Ubuntu. Их можно извлечь с помощью команды tar в терминале.
  • Расширения .tar.gz и .tar.bz2 указывают, что файлы tar сжимаются с использованием алгоритма сжатия gzip или bzip2.
  • Извлечение файлов из файла tar можно выполнить с помощью команды tar с опциями -x, -v и -z (.gz) или -j (bz2) в зависимости от типа сжатия. Извлеченные файлы можно перенаправить в определенный каталог с помощью опции -C.

Файлы Tar представляют собой сжатые архивы. Вы часто будете сталкиваться с ними при использовании дистрибутива Linux, такого как Ubuntu, или даже при использовании терминала в macOS. Вот как извлечь или распаковать содержимое tar-файла, также известного как tarball.

Что означают .tar.gz и .tar.bz2?

Файлы с расширением .tar.gz или .tar.bz2 являются сжатыми архивными файлами. Файл с расширением .tar является несжатым, но такие случаи встречаются очень редко.

Часть расширения файла .tar означает tape archive и является причиной того, что оба этих типа файлов называются tar-файлами. . Файлы Tar появились в 1979 году, когда была создана команда tar, позволяющая системным администраторам архивировать файлы на ленту. Сорок лет спустя мы все еще используем команду tar для извлечения файлов tar на наши жесткие диски. Вероятно, кто-то где-то все еще использует tar с лентой.

Суффикс расширения .gz или .bz2 указывает, что архив был сжат с использованием gzip или bzip2. алгоритм сжатия. Команда tar будет успешно работать с файлами обоих типов, поэтому не имеет значения, какой метод сжатия использовался — она должна быть доступна везде, где есть оболочка Bash. Вам просто нужно использовать соответствующие параметры командной строки tar.

Стоит отметить, что все, что описано в этой статье, также работает в подсистеме Windows для Linux, которая позволяет вам установить оболочку Bash внутри Windows 10 или Windows 11, хотя есть и другие способы открытия файлов tar.gz в Windows.

Типы файлов

Extension

DAT·7Z·BZ2·XML·RTF·XLSX·WEBP·EPUB·MP4· M4A· AVI·MOBI·SVG·MP3·REG·PHP·LOG·PPTX·PDF·MPEG·WMA·M4V· >AZW·LIT·TAR·TAR.GZ·RAR

Извлечение файлов из файлов Tar

Допустим, вы скачали два файла нот. Один файл называется ukulele_songs.tar.gz, другой — guitar_songs.tar.bz2. Эти файлы находятся в каталоге «Загрузки».

Давайте извлечем (иногда называемое «untar» вместо извлечения) песни для гавайской гитары:

tar -xvzf ukulele_songs.tar.gz

По мере извлечения файлов они отображаются в окне терминала.

Параметры командной строки, которые мы использовали:

  • -x: извлечь файлы из tar-файла.
  • -v: подробный список файлов по мере их извлечения.
  • -z: Gzip, используйте gzip для распаковки tar-файла.
  • -f: Файл, имя tar-файла, с которым мы хотим, чтобы tar работал. За этой опцией должно следовать имя tar-файла.

Перечислите файлы в каталоге с помощью ls, и вы увидите, что создан каталог под названием «Песни для укулеле». Извлеченные файлы находятся в этом каталоге. Откуда взялся этот каталог? Он содержался в файле tar и был извлечен вместе с файлами.

Теперь давайте извлечем гитарные песни. Для этого мы будем использовать почти ту же команду, что и раньше, но с одним важным отличием. Суффикс расширения .bz2 сообщает нам, что он был сжат с помощью команды bzip2. Вместо использования параметра -z (gzip) мы будем использовать параметр -j (bzip2) для разархивирования файла bz2.

tar -xvjf guitar_songs.tar.bz2

И снова файлы отображаются на терминале по мере их извлечения. Для ясности: параметры командной строки, которые мы использовали с tar для файла .tar.bz2, были следующими:

  • -x: извлечь файлы из tar-файла.
  • -v: подробный список файлов по мере их извлечения.
  • -j: Bzip2, используйте bzip2 для распаковки tar-файла.
  • -f: Файл, имя tar-файла, с которым мы хотим, чтобы tar работал.

Если мы перечислим файлы в каталоге «Загрузки», мы увидим, что был создан еще один каталог под названием «Песни для гитары».

Выбор места для извлечения файлов

Если мы хотим извлечь файлы в место, отличное от текущего каталога, мы можем указать целевой каталог, используя опцию -C (указанный каталог).

tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/

Заглянув в наш каталог Documents/Songs, мы увидим, что создан каталог Guitar Songs.

Обратите внимание, что целевой каталог уже должен существовать, tar не создаст его, если он отсутствует. Если вам нужно создать каталог и с помощью tar извлечь в него все файлы одной командой, вы можете сделать это следующим образом:

mkdir -p ~/Documents/Songs/Downloaded && tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/Downloaded/

Опция -p (parents) заставляет mkdir создать все необходимые родительские каталоги, гарантируя создание целевого каталога.

Просмотр файлов Tar перед их извлечением

До сих пор мы просто совершали решительный шаг и извлекали файлы незаметно. Возможно, вам захочется посмотреть, прежде чем прыгнуть. Вы можете просмотреть содержимое файла tar перед его извлечением, используя параметр -t (список). Обычно удобно передавать вывод через команду less.

tar -tf ukulele_songs.tar.gz | less

Обратите внимание, что нам не нужно использовать опцию -z для вывода списка файлов. Нам нужно добавить опцию -z только тогда, когда мы извлекаем файлы из файла .tar.gz. Аналогично, нам не нужна опция -j для вывода списка файлов в файле tar.bz2.

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

Мы видим, что каталог «Песни для укулеле» содержит каталоги под названием «Случайные песни», «Рамоны» и «Возможные».

Чтобы извлечь все файлы из каталога внутри файла tar, используйте следующую команду. Обратите внимание, что путь заключен в кавычки, поскольку в нем есть пробелы.

tar -xvzf ukulele_songs.tar.gz "Ukulele Songs/Ramones/"

Чтобы извлечь один файл, укажите путь и имя файла.

tar -xvzf ukulele_songs.tar.gz "Ukulele Songs/023 - My Babe.odt"

Вы можете извлечь выбранные файлы, используя подстановочные знаки, где * представляет собой любую строку символов, а ? представляет собой любой отдельный символ. Для использования подстановочных знаков требуется использовать параметр --wildcards.

tar -xvz --wildcards -f ukulele_songs.tar.gz "Ukulele Songs/Possibles/B*"

Извлечение файлов без извлечения каталогов

Если вы не хотите, чтобы структура каталогов в tar-файле воссоздавалась на вашем жестком диске, используйте параметр --strip-comComponents. Опция --strip-comComponents требует числового параметра. Число показывает, сколько уровней каталогов следует игнорировать. Файлы из игнорируемых каталогов по-прежнему извлекаются, но структура каталогов не копируется на ваш жесткий диск.

Если мы укажем --strip-comComponents=1 в нашем примере tar-файла, самый верхний каталог «Песни для укулеле» в tar-файле не будет создан на жестком диске. Файлы и каталоги, которые должны были быть извлечены в этот каталог, извлекаются в целевой каталог.

tar -xvzf ukulele_songs.tar.gz --strip-components=1

В нашем примере tar-файла имеется только два уровня вложенности каталогов. Поэтому, если мы используем --strip-comComponents=2, все файлы извлекаются в целевой каталог, и никакие другие каталоги не создаются.

tar -xvzf ukulele_songs.tar.gz --strip-components=2

Если вы посмотрите на справочную страницу Linux, вы увидите, что tar должен быть хорошим кандидатом на звание «команда, имеющая наибольшее количество параметров командной строки». К счастью, чтобы мы могли извлекать файлы из файлов .tar.gz и tar.bz2 с хорошей степенью детального контроля, нам нужно запомнить всего лишь несколько этих параметров. .

Linux Commands

Files

tar·pv·cat·tac·chmod·grep ·diff·sed·ar·man·pushd·popd·fsck·testdisk·seq·fd·pandoc·cd·$PATH·awk·join·jq·fold·uniq·journalctl·tail·stat·ls·fstab·echo·less·chgrp·chown·rev·look·strings·type·rename·zip·unzip·mount·umount·install·fdisk·mkfs·rm·rmdir·rsync·df·gpg·vi·nano·mkdir·du·ln·patch·convert·rclone·shred·srm·scp·gzip·chattr·cut·find·umask·wc· tr

Processes

alias·screen·top·nice·renice·progress·strace·systemd·tmux·chsh·history·at·batch·free·which·dmesg·chfn·usermod·ps·chroot·xargs·tty·pinky·lsof·vmstat·timeout·wall·yes·kill·sleep·sudo·su·time·groupadd·usermod·groups·lshw·shutdown·reboot·halt·poweroff·passwd·lscpu·crontab·date·bg·fg·pidof·nohup·pmap

Networking

netstat·ping·traceroute·ip·ss·whois·fail2ban·bmon·dig·finger·nmap·ftp·curl·wget·who·whoami·w·iptables·ssh-keygen·ufw·arping·firewalld

Статьи по данной тематике: