- Tar Extract a Single File(s) From a Large Tarball
- Extracting Specific Files
- Wildcard based extracting
- Further readings:
- Команда tar: архивация, распаковка и сжатие файлов в Linux
- Tar: основные функции и синтаксис
- Как воспользоваться архиватором tar
- Архивируем файлы
- Распаковываем tar-файлы
- Как работать со сжатием файлов
- Как посмотреть содержимое архива
- Заключение
- Как распаковать tar bz2 xz gz архивы в Linux
- Распаковка tar
- Распаковка tar.bz2, tar.bzip2, tbz2, tb2, tbz
- Распаковка tar.xz, txz
- Распаковка tar.gz, tgz
- Распаковка tar.lzma
- Пояснение опций
- Распаковка в определенную директорию
- Заключение
- How do I extract a specific file from a tar archive?
- 1 Answer 1
- 1. Using the Command-line tar
- 2. Extract it with the Archive Manager
- 3. Using Nautilus/Archive-Mounter
- How to extract specific file(s) from tar.gz
- 6 Answers 6
Tar Extract a Single File(s) From a Large Tarball
Q. I’ve couple of large tarballs such as www.tar and images.tar. Is it possible to extract a single file or a list of files from a large tarball such as images.tar instead of extracting the entire tarball? How do I extract specific files under Linux / UNIX operating systems?
A. GNU tar can be used to extract a single or more files from a tarball. To extract specific archive members, give their exact member names as arguments, as printed by -t option.
Extracting Specific Files
Extract a file called etc/default/sysstat from config.tar.gz tarball:
$ tar -ztvf config.tar.gz
$ tar -zxvf config.tar.gz etc/default/sysstat
$ tar -xvf < tarball.tar > < path/to/file >
Some people prefers following syntax:
tar —extract —file= < tarball.tar > < file >
Extract a directory called css from cbz.tar:
$ tar —extract —file=cbz.tar css
- No ads and tracking
- In-depth guides for developers and sysadmins at Opensourceflare✨
- Join my Patreon to support independent content creators and start reading latest guides:
- How to set up Redis sentinel cluster on Ubuntu or Debian Linux
- How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
- How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
- A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
- How to protect Linux against rogue USB devices using USBGuard
Join Patreon ➔
Wildcard based extracting
You can also extract those files that match a specific globbing pattern (wildcards). For example, to extract from cbz.tar all files that begin with pic, no matter their directory prefix, you could type:
$ tar -xf cbz.tar —wildcards —no-anchored ‘pic*’
To extract all php files, enter:
$ tar -xf cbz.tar —wildcards —no-anchored ‘*.php’
- -x: instructs tar to extract files.
- -f: specifies filename / tarball name.
- -v: Verbose (show progress while extracting files).
- -j : filter archive through bzip2, use to decompress .bz2 files.
- -z: filter archive through gzip, use to decompress .gz files.
- –wildcards: instructs tar to treat command line arguments as globbing patterns.
- –no-anchored: informs it that the patterns apply to member names after any / delimiter.
Further readings:
🐧 Get the latest tutorials on Linux, Open Source & DevOps via
Источник
Команда tar: архивация, распаковка и сжатие файлов в Linux
По умолчанию в системах Unix/Linux включен встроенный архиватор tar, позволяющий запаковывать/распаковывать архив и выполнять много других операций с заархивированными файлами. В его функционал не входит компрессия, но он отлично работает с такими утилитами, как Gzip и BZip2 – с помощью них и выполняется сжатие файлов.
В сегодняшней статье мы подробно разберем основные функции команды tar, а также рассмотрим, как работать с архивами в Linux-системе.
Tar: основные функции и синтаксис
Начнем с синтаксиса – он довольно прост. Если вы когда-либо работали в консольном окне, то вопросов возникнуть не должно. Создание нового архива выполняется следующей строчкой кода:
Распаковка файлов тоже выполняется просто:
Основные опции:
- -A, —concatenate – позволяет добавить уже существующий архив к другому;
- -c, —create – создает новый архив и записывает в него файлы;
- -d – расшифровывается как -diff или -delete, где первая команда проверяет различия между архивами, вторая – удаляет данных из архива;
- -r, append – добавляет новые файлы в конец заархивированного документа;
- -t, —list – разрешает посмотреть содержимое архива, формат аналогичен ls –l; если файлы не указаны, то выводит информацию обо всех файлах;
- -u, —update – обновление файлов в созданном архиве с тем же наименованием;
- -x, —extract – распаковывает файлы из заархивированного документа.
Мы также можем использовать особые параметры, относящиеся к каждой опции:
- -c dir, —directory=DIR – перед тем как выполнить операцию, директория будет изменена на dir;
- -f file, —file – выводит результат в file;
- -p, —bzip2 – сохраняет все права доступа;
- -v – расшифровывается как -verbose или -totals: выводит всю информацию о текущем процессе и показывает сведения об уже завершенном процессе.
Как мы говорили ранее, tar также хорошо взаимодействует с утилитами сжатия. Для их использования предназначены отдельные опции:
- -a, -auto-compress – выбирает программу для сжатия данных;
- -I, -use-compress-program=PROG – позволяет фильтровать архив с помощью утилиты PROG, для которой требуется использование опции -d;
- -j, -bzip2 – сжимает архив с помощью программы bzip2;
- -J, -xz – сжимает архив с помощью программы XZ;
- -Izip – сжимает архив с помощью программы Lzip;
- -Izma – сжимает архив с помощью программы Izma;
- -z, -gzip, -gunzip, -ungzip – сжимает архив с помощью программы GZIP;
- -Z, -compress, -uncompress – использование компрессии.
У команды tar есть еще много возможностей – чтобы их посмотреть, достаточно в консольном окне ввести команду tar —help. О том, как воспользоваться наиболее важными опциями и поработать с архивацией данных, мы поговорим в следующем разделе.
Как воспользоваться архиватором tar
Для работы с архиватором будем использовать сборку Kali Linux. Данный алгоритм подойдет и для других версий Unix/Linux, поэтому можете просто следовать инструкциям, чтобы прийти к тому же результату.
Создать новый архив или распаковать уже созданный мы можем двумя путями: воспользоваться необходимыми командами через консоль либо использовать встроенный архиватор ручным способом. Давайте рассмотрим оба варианта и посмотрим, как с их помощью можно создать новый архив, посмотреть его содержимое, распаковать данные и провести их сжатие.
Архивируем файлы
Чтобы добавить один или несколько файлов в архив через консольное окно, нам потребуется сначала прописать пути, чтобы система понимала, откуда брать файлы. Сделать это довольно просто: указываем в консоли путь до директории, в которой находятся файлы. В нашем случае это /home/kali/.
Для архивации вводим команду типа:
В результате будет создан архив в исходной папке – перейдем в нее и убедимся, что все прошло корректно:
Второй способ – ручное архивирование. Для этого выбираем файл, который нужно заархивировать, и кликаем по нему правой кнопкой мыши. В отобразившемся меню нажимаем на функцию создания архива. Далее нам потребуется указать название файла, задать ему расширение .tar и воспользоваться кнопкой архивирования файлов.
Как видите, создать tar-архив в Linux совсем не сложно. Если вам нужно заархивировать несколько документов через консоль, то просто пропишите их имена с использованием пробела.
Распаковываем tar-файлы
В данном случае нам также потребуется в консольном окне перейти в нужную директорию. Как только пути будут прописаны, можно вводить команду для разархивации:
Таким образом будут получены файлы, находящиеся в архиве. Также мы можем их достать и ручным способом – для этого достаточно кликнуть правой кнопкой мыши по файлу и нажать на «Извлечь здесь».
Как работать со сжатием файлов
Напоминаю, что tar не сжимает файлы, а только добавляет их в архив. Для уменьшения размера архивируемых файлов потребуется дополнительно воспользоваться такими утилитами, как bzip2 и gzip. Они хорошо взаимодействуют с tar, поэтому в консольном окне достаточно прописать несколько новых значений. В ручном режиме сжатие файлов выполняется с помощью расширения .tar.bz2 или .tar.gz.
Итак, для сжатия в bzip2 переходим через консоль в нужную директорию и прописываем следующую команду:
Чтобы использовать gzip, другую утилиту для сжатия, вводим следующее:
Для распаковки файлов такого типа используйте:
Ручной способ аналогичен созданию обычного архива, только необходимо указать расширение .tar.bz2 либо .tar.gz.
Распаковать файлы самостоятельно тоже просто – для этого нужно кликнуть правой кнопкой по архиву и выбрать «Извлечь здесь».
Как посмотреть содержимое архива
Мы можем посмотреть, что находится в архиве без его распаковки. В консоли для этого необходимо ввести команду такого типа:
Обратите внимание, что под командой отобразилось название «document1» – это файл, находящийся в архиве. Если файлов несколько, то каждый будет прописан в новой строке.
Для просмотра архива без использования консоли достаточно кликнуть двойным щелчком мыши по архиву. После этого отобразится новое окно, в котором будет показан весь список файлов.
Заключение
Сегодня мы рассмотрели основные методы архивации, распаковки и сжатия файлов с помощью команды tar. Это простой инструмент, который отлично взаимодействует с утилитами сжатия bzip2 и gzip. Надеюсь, что теперь вам будет легко работать с архивами в системе Linux. Спасибо за внимание!
Источник
Как распаковать tar bz2 xz gz архивы в Linux
Шпаргалка по распаковке tar архивов.
Для распаковки tar-архивов через командную строку используется утилита tar.
Полезно знать, что архивы в формате tar имеют расширение файлов .tar . Также в Linux распространены архивы, которые имеют дополнительное сжатие другими программами. Например, архивы .tar.bz2 , .tar.gz и другие. Все эти архивы можно распаковать утилитой tar.
Распаковка tar
Для распаковки архива в формате .tar в текущую директорию выполните команду:
Распаковка tar.bz2, tar.bzip2, tbz2, tb2, tbz
Распаковка tar.xz, txz
Распаковка tar.gz, tgz
Распаковка tar.lzma
Пояснение опций
x — распаковать архив.
v — Verbose-режим (вывод на экран дополнительной информации во время распаковки).
f — выполнить распаковку архива из файла.
j — вызвать bzip2 для распаковки архива.
z — вызвать gzip
J — вызвать xz
Распаковка в определенную директорию
Чтобы распаковать архив в определенную директорию используется опция -C или —directory , например:
Примечание: директория должна существовать.
Заключение
Мы рассмотрели базовый набор команд, который можно использовать для распаковки различных видов tar-архивов. Существуют также еще некоторые типы архивов, но они менее распространены.
Источник
How do I extract a specific file from a tar archive?
Is it possible to restore a single file from the .tar backup? I don’t want to restore total backup. I just want to restore one single file from the backup.
1 Answer 1
1. Using the Command-line tar
Yes, just give the full stored path of the file after the tarball name.
Example: suppose you want file etc/apt/sources.list from etc.tar :
Will extract sources.list and create directories etc/apt under the current directory.
- You can use the -t listing option instead of -x , maybe along with grep, to find the path of the file you want
- You can also extract a single directory
- tar has other options like —wildcards , etc. for more advanced partial extraction scenarios; see man tar
2. Extract it with the Archive Manager
Open the tar in Archive Manager from Nautilus, go down into the folder hierarchy to find the file you need, and extract it.
- On a server or command-line system, use a text-based file manager such as Midnight Commander ( mc ) to accomplish the same.
3. Using Nautilus/Archive-Mounter
Right-click the tar in Nautilus, and select Open with ArchiveMounter.
The tar will now appear similar to a removable drive on the left, and you can explore/navigate it like a normal drive and drag/copy/paste any file(s) you need to any destination.
Источник
How to extract specific file(s) from tar.gz
How can we extract specific files from a large tar.gz file? I found the process of extracting files from a tar in this question but, when I tried the mentioned command there, I got the error:
How do I then extract a file from tar.gz ?
6 Answers 6
You can also use tar -zxvf
You must write the file name exacty as tar ztf test.tar.gz shows it. If it says e.g. ./extract11 , or some/bunch/of/dirs/extract11 , that’s what you have to give (and the file will show up under exactly that name, needed directories are created automatically).
- -x : instructs tar to extract files.
- -f : specifies filename / tarball name.
- -v : Verbose (show progress while extracting files).
- -z : filter archive through gzip, use to decompress .gz files.
Let’s assume you have a tarball called lotsofdata.tar.gz and you just know there is one file in there you want but all you can remember is that its name contains the word contract . You have two options:
Either use tar and grep to list the contents of your tarball so you can find out the full path and name of any files that match the part you know, and then use tar to extract that one file now you know its exact details, or you can use two little known switches to just extract all files that match what little you do know of your file name—you don’t need to know the full name or any part of its path for this option. The details are:
This will list the details of all files whose names contain your known part. Then you extract what you want using:
You may need ./ in front of your path for it to work.
Up to you which you find easier or most useful.
Источник