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

ZIP-файлы — это универсальный архив, обычно используемый в системах Windows, macOS и даже Linux. Вы можете создать zip-архив или распаковать файлы из одного с помощью некоторых общих команд терминала Linux.

Часто используемые ключи команды tar

  1. -c – создать (create) новый архив
  2. -x – извлечь (extract) файлы из архива
  3. –delete – удалить (delete) файлы из архива
  4. -r – добавить (append) файлы в существующий архив
  5. -A – добавить (append) tar-файлы в существующий архив
  6. -t – список файлов в архиве (содержимое архива)
  7. -u – обновить (update) архив
  8. -d – операция сравнения архива с заданной файловой системой
  9. -z – обработка архива с помощью Примеры использования gzip и gunzip. Сжатие или разжатие, в зависимости от комбинации сопутствующих ключей -c или -x.
  10. -j – обработка архива с помощью bzip2. Сжатие или разжатие, в зависимости от комбинации сопутствующих ключей -c или -x.

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

Наиболее общее использование tar заключается в распаковке и разархивировании пакета, загруженного с веб- или ftp-сайта. Большинство файлов имеют расширение Довольно часто их называют “tarball”'ами. Это означает несколько файлов, заархивированных tar'ом, а затем сжатых gzip'ом. Вы также можете встретить файлы .tar.Z. По сути это то же самое, однако встречаются они в основном на старых системах Unix.

Кроме того вы можете натолкнуться на файлы В таком виде распространяются исходные тексты ядра, поскольку так они занимают меньше места для загрузки. Как вы уже наверное догадались, это файлы, заархивированные tar'ом и сжатые bzip'ом.

Вы можете извлечь все файлы из такого архива, воспользовавшись tar'ом с несколькими опциями командной строки. Разархивирование тарбола выполняется с помощью опции -z, которая означает, что сначала файл должен быть пропущен через gunzip, а уже потом распакован. Наиболее общий метод распаковки тарболов:

Читайте также:  Linux. Горячие клавиши курсора в командной строке

% tar -xvzf

Здесь довольно много опций. Что же они означают? Опция -x означает извлечение. Это важно, поскольку она сообщает tar'у, что именно нужно сделать со входным файлом. В данном случае он будет снова разбит на файлы, из которых он был “слеплен”. Опция -v означает включение подробного режима. При этом на экран будут выведены названия всех извлекаемых из архива файлов. Неплохо было бы использовать эту опцию, чтобы распаковка не выглядела слишком скучно. Вы также можете использовать -vv, чтобы вывод был ещё более подробным и вы получили ещё больше информации об извлекаемых файлах. Опция -z сообщает tar'у о том, что нужно сначала пропустить через gunzip. И, наконец, опция -f сообщает tar'у, что следующая строка в командной строке — это файл, с которым надо работать.

Существует несколько способов записи этой же команды. На старых системах, на которых отсутствует подходящая копия GNU tar, вы можете увидеть следующую запись этой же команды:

% gunzip | tar -xvf —

В этой команде файл сначала распаковывается, а результат отправляется в tar. Т.к. gzip по умолчанию записывает выходные данные на стандартный вывод, эта команда будет записывать распакованный файл на стандартный вывод. Затем конвейер перенаправляет этот поток в tar для распаковки. Знак “-” означает, что данные берутся со стандартного входа. Таким образом команда разархивирует поток данных, полученный из gzip, и запишет его на диск.

Другим способом записи первоначальной команды является убирание знака “-” перед опциями:

% tar xvzf

Также вы можете натолкнуться на bzip'нутый архив. Версия tar, представленная в Slackware Linux, может работать с ними точно так же, как и с gzip'нутыми архивами. Просто вместо опции -z вам нужно использовать -j:

% tar -xvjf

Читайте также:  Программы для чтения электронных книг на компьютере

Учтите, что tar будет сохранять извлечённые из архива файлы в текущий каталог. Поэтому, если у вас в /tmp есть архив, который вы хотите распаковать в свой домашний каталог, у вас есть несколько вариантов. Первый — архив можно переместить в ваш домашний каталог, а затем развернуть его с помощью tar. Второй — вы можете указать путь к архиву в командной строке. Третий — вы можете использовать опцию -C, чтобы разархивировать тарбол в указанный после этой опции каталог.

% cd $HOME % cp /tmp/ . % tar -xvzf

% cd $HOME % tar -xvzf /tmp/

% cd / % tar -xvzf /tmp/ -C $HOME

Все приведенные выше записи являются эквивалентными. В каждой из них архив разворачивается в ваш домашний каталог, а исходный сжатый архив остаётся на месте.

Графический интерфейс

Linux уже давно перестал быть системой для гиков. Все основные операции пользователь может выполнять в графическом режиме.

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

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

В отмеченной единицей области выбираем конечную директорию. Указываем опции распаковки в панели обозначенной на скриншоте цифрой «2». Жмем кнопку «Извлечь» завершая операцию.

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

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

tar -tf ukulele_ | Меньше

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

Прокручивая вывод, мы видим, что все в файле tar содержится в каталоге с названием Ukulele Songs, и в этом каталоге есть файлы и другие каталоги.

Мы видим, что каталог Ukulele Songs содержит каталоги под названием Random Songs, Ramones и возможный.

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

tar -xvzf ukulele_ «Песни укулеле / ​​Ramones /»

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

tar -xvzf ukulele_ «Песни укулеле / ​​023 — My «

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

tar -xvz —wildcards -f ukulele_ «Песни укулеле / ​​Возможные варианты / B *»

Разделить файл командой zipsplit

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

Опция -n (размер) позволяет вам установить максимальный размер для каждого из новых файлов ZIP. В этом примере мы source_ файл source_ . Мы не хотим, чтобы новые ZIP-файлы были больше 100 КБ (102400 байт).

zipsplit -n 102400 source_

Разделить файл командой zipsplit

Выбранный вами размер не может быть меньше размера любого из файлов в ZIP-файле.

Используя эти команды, вы можете создавать свои собственные ZIP-файлы, распаковывать полученные ZIP-файлы и выполнять с ними различные другие операции, даже не покидая терминал Linux.