- Команда tar в Linux
- Синтаксис команды tar
- Как пользоваться tar
- 1. Создание архива tar
- 2. Просмотр содержимого архива
- 3. Распаковка архива tar Linux
- 3. Работа со сжатыми архивами
- Выводы
- Tar Command in Linux (Create and Extract Archives)
- tar Command Syntax #
- Creating Tar Archive #
- Creating Tar Gz Archive #
- Creating Tar Bz2 Archive #
- Listing Tar Archives #
- Extracting Tar Archive #
- Extracting Tar Archive in a Different Directory #
- Extracting Tar Gz and Tar Bz2 Archives #
- Extracting Specific Files from a Tar Archive #
- Extracting Files from a Tar Archive using Wildcard #
- Adding Files to Existing Tar Archive #
- Removing Files from a Tar Archive #
- Conclusion #
Команда tar в Linux
В качестве инструмента для архивации данных в Linux используются разные программы. Например архиватор Zip Linux, приобретший большую популярность из-за совместимости с ОС Windows. Но это не стандартная для системы программа. Поэтому хотелось бы осветить команду tar Linux — встроенный архиватор.
Изначально tar использовалась для архивации данных на ленточных устройствах. Но также она позволяет записывать вывод в файл, и этот способ стал широко применяться в Linux по своему назначению. Здесь будут рассмотрены самые распространенные варианты работы с этой утилитой.
Синтаксис команды tar
Синтаксис команд для создания и распаковки архива практически не отличается (в том числе с утилитами сжатия bzip2 или gzip). Так, чтобы создать новый архив, в терминале используется следующая конструкция:
tar опции архив.tar файлы_для_архивации
tar опции архив.tar
Функции, которые может выполнять команда:
Функция | Длинный формат | Описание |
---|---|---|
-A | —concatenate | Присоединить существующий архив к другому |
-c | —create | Создать новый архив |
-d | —diff —delete | Проверить различие между архивами Удалить из существующего архива файл |
-r | —append | Присоединить файлы к концу архива |
-t | —list | Сформировать список содержимого архива |
-u | —update | Обновить архив более новыми файлами с тем же именем |
-x | —extract | Извлечь файлы из архива |
При определении каждой функции используются параметры, которые регламентируют выполнение конкретных операций с tar-архивом:
Параметр | Длиннный формат | Описание |
---|---|---|
-C dir | —directory=DIR | Сменить директорию перед выполнением операции на dir |
-f file | —file | Вывести результат в файл (или на устройство) file |
-j | —bzip2 | Перенаправить вывод в команду bzip2 |
-p | —same-permissions | Сохранить все права доступа к файлу |
-v | —verbose | Выводить подробную информацию процесса |
—totals | Выводить итоговую информацию завершенного процесса | |
-z | —gzip | Перенаправить вывод в команду gzip |
А дальше рассмотрим примеры того, как может применяться команда tar Linux.
Как пользоваться tar
1. Создание архива tar
С помощью следующей команды создается архив archive.tar с подробным выводом информации, включающий файлы file1, file2 и file3:
tar —totals —create —verbose —file archive.tar file1 file2 file3
Но длинные опции и параметры можно заменить (при возможности) однобуквенными значениями:
tar —totals -cvf archive.tar file1 file2 file3
2. Просмотр содержимого архива
Следующая команда выводит содержимое архива, не распаковывая его:
3. Распаковка архива tar Linux
Распаковывает архив test.tar с выводом файлов на экран:
Чтобы сделать это в другой каталог, можно воспользоваться параметром -C:
tar -C «Test» -xvf archive.tar
3. Работа со сжатыми архивами
Следует помнить, что tar только создаёт архив, но не сжимает. Для этого используются упомянутые компрессорные утилиты bzip2 и gzip. Файлы, сжатые с их помощью, имеют соответствующие расширения .tar.bz2 и .tar.gz. Чтобы создать сжатый архив с помощью bzip2, введите:
tar -cjvf archive.tar.bz2 file1 file2 file3
Синтаксис для gzip отличается одной буквой в параметрах, и меняется окончание расширения архива:
tar -czvf archive.tar.gz file1 file2 file3
При распаковке tar-архивов с таким расширением следует указывать соответствующую опцию:
tar -C «Test» -xjvf arhive.tar.bz2
На заметку: архиватор tar — одна из немногих утилит в GNU/Linux, в которой перед использованием однобуквенных параметров, стоящих вместе, можно не ставить знак дефиса.
Выводы
В этой статье была рассмотрена команда tar Linux, которая используется для архивации файлов и поставляется по умолчанию во всех дистрибутивах. В её возможности входит создание и распаковка архива файлов без их сжатия. Для сжатия утилита применяется в связке с популярными компрессорами bzip2 и gzip.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Tar Command in Linux (Create and Extract Archives)
The tar command creates tar files by converting a group of files into an archive. It also can extract tar archives, display a list of the files included in the archive, add additional files to an existing archive, and various other kinds of operations.
Tar was originally designed for creating archives to store files on magnetic tape, which is why it has its name “Tape ARchive”.
This article shows how to use the tar command to extract, list, and create tar archives through practical examples and detailed explanations of the most common tar options.
tar Command Syntax #
There are two versions of tar, BSD tar , and GNU tar , with some functional differences. Most Linux systems come with GNU tar pre-installed by default.
The general syntax for the tar command is as follows:
tar [OPERATION_AND_OPTIONS] [ARCHIVE_NAME] [FILE_NAME(s)]
- OPERATION — Only one operation argument is allowed and required. The most frequently used operations are:
- —create ( -c ) — Create a new tar archive.
- —extract ( -x ) — Extract the entire archive or one or more files from an archive.
- —list ( -t ) — Display a list of the files included in the archive
- —verbose ( -v ) — Show the files being processed by the tar command.
- —file=archive=name ( -f archive-name ) — Specifies the archive file name.
When executing tar commands, you can use the long or the short form of the tar operations and options. The long forms are more readable, while the short forms are faster to type. The long-form options are prefixed with a double dash ( — ). The short-form options are prefixed with a single dash ( — ), which can be omitted.
Creating Tar Archive #
Tar supports a vast range of compression programs such as gzip , bzip2 , lzip , lzma , lzop , xz and compress . When creating compressed tar archives, it is an accepted convention to append the compressor suffix to the archive file name. For example, if an archive has been compressed with gzip , it should be named archive.tar.gz.
To create a tar archive, use the -c option followed by -f and the name of the archive.
For example, to create an archive named archive.tar from the files named file1 , file2 , file3 , you would run the following command:
tar -cf archive.tar file1 file2 file3
Here is the equivalent command using the long-form options:
tar --create --file=archive.tar file1 file2 file3
You can create archives from the contents of one or more directories or files. By default, directories are archived recursively unless —no-recursion option is specified.
The following example will create an archive named user_backup.tar of the /home/user directory:
tar -cf backup.tar /home/user
Use the -v option if you want to see the files that are being processed.
Creating Tar Gz Archive #
Gzip is the most popular algorithm for compressing tar files. When compressing tar archives with gzip, the archive name should end with either tar.gz or tgz .
The -z option tells tar to compress the archive using the gzip algorithm as it is created. For example, to create a tar.gz archive from given files, you would run the following command:
tar -czf archive.tar.gz file1 file2
Creating Tar Bz2 Archive #
Another popular algorithm for compressing tar files is bzip2. When using bzip2, the archive name should end with either tar.bz2 or tbz .
To compress the archive with the bzip2 algorithm, invoke tar with the -j option. The following command creates a tar.bz2 archive from the given files:
tar -cjf archive.tar.bz2 file1 file2
Listing Tar Archives #
When used with the —list ( -t ) option, the tar command lists the content of a tar archive without extracting it.
The command below, will list the content of the archive.tar file:
To get more information such as the file owner , file size, timestamp use the —verbose ( -v ) option:
-rw-r--r-- linuxize/users 0 2018-09-08 01:19 file1
-rw-r--r-- linuxize/users 0 2018-09-08 01:19 file2
-rw-r--r-- linuxize/users 0 2018-09-08 01:19 file3
Extracting Tar Archive #
Most of the archived files in Linux are archived and compressed using a tar or tar.gz format. Knowing how to extract these files from the command line is important.
To extract a tar archive, use the —extract ( -x ) option followed by the archive name:
It is also common to add the -v option to print the names of the files being extracted.
Extracting Tar Archive in a Different Directory #
By default, tar will extract the archive contents in the current working directory . Use the —directory ( -C ) to extract archive files in a specific directory:
For example, to extract the archive contents to the /opt/files directory, you can use:
tar -xf archive.tar -C /opt/files
Extracting Tar Gz and Tar Bz2 Archives #
When extracting compressed archives such as tar.gz or tar.bz2 , you do not have to specify a decompression option. The command is the same as when extracting tar archive:
Extracting Specific Files from a Tar Archive #
Sometimes instead of extracting the whole archive, you might need to extract only a few files from it.
To extract a specific file(s) from a tar archive, append a space-separated list of file names to be extracted after the archive name:
tar -xf archive.tar file1 file2
When extracting files, you must provide their exact names, including the path, as printed by —list ( -t ).
Extracting one or more directories from an archive is the same as extracting files:
tar -xf archive.tar dir1 dir2
If you try to extract a file that doesn’t exist, an error message similar to the following will be displayed:
tar: README: Not found in archive tar: Exiting with failure status due to previous errors
Extracting Files from a Tar Archive using Wildcard #
To extract files from an archive based on a wildcard pattern, use the —wildcards switch and quote the pattern to prevent the shell from interpreting it.
For example, to extract files whose names end in .js (Javascript files), you can use:
tar -xf archive.tar --wildcards '*.js'
Adding Files to Existing Tar Archive #
To add files or directories to an existing tar archive, use the —append ( -r ) operation.
For example, to add a file named newfile to archive.tar, you would run:
tar -rvf archive.tar newfile
Removing Files from a Tar Archive #
Use the —delete operation to remove files from an archive.
The following example shows how to remove the file file1 from archive.tar,:
tar --delete -f archive.tar file1
Conclusion #
The most common uses of the tar command are to create and extract a tar archive. To extract an archive, use the tar -xf command followed by the archive name, and to create a new one use tar -czf followed by the archive name and the files and directories you want to add to the archive.
For more information about the tar command, consult the Gnu tar documentation page .