> For the complete documentation index, see [llms.txt](https://olexsyn.gitbook.io/enote/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://olexsyn.gitbook.io/enote/linux/commands/tar.md).

# tar

Створити архів з вмісту каталогу / розархівувати tgz-архів:

```
tar -czf content.tgz ./content_dir
tar -xzf content.tgz
```

Щоб передати **список файлів для архівування** через файл, ви можете скористатися опцією `-T` та вказати ім'я файлу, в якому перераховані шляхи до файлів, які потрібно архівувати.

Ось приклад:

1. Створіть текстовий файл (наприклад, `filelist.txt`) і додайте в нього шляхи до файлів, які ви хочете включити в архів. Наприклад:

   ```
   /шлях/до/файлу1
   /шлях/до/файлу2
   /шлях/до/файлу3
   ```
2. Використайте команду `tar` з опцією `-T` для зчитування списку файлів з файлу та створення архіву. Наприклад:

   ```bash
   tar -czvf arch.tgz -T filelist.txt
   ```

   У цьому прикладі:

   * `-c`: створити новий архів,
   * `-z`: використати gzip для стиснення,
   * `-v`: вивести подробиці про виконання,
   * `-f arch.tgz`: вказати ім'я архіву,
   * `-T filelist.txt`: вказати файл, в якому перераховані файли для архівування.

Таким чином, всі файли, вказані в `filelist.txt`, будуть включені в архів `архів.tar.gz`.

Linux **tar** — это архив, который используется большим количеством системных администраторов **Linux**/**Unix** при работе с накопителями для резервного копирования. **Команды tar** [используются](https://blog.sedicomm.com/2019/10/28/kak-izvlech-tar-fajly-v-katalog-v-linux/)  для копирования файлов и каталогов в файл сжатого архива, обычно называемый **tarball** или **tar**, **gzip** и **bzip**. **Tar** является наиболее широко используемой командой для создания сжатых архивных файлов. Этот архив можно легко перемещаться с одного диска на другой диск или машину.

В этой статье мы рассмотрим и обсудим различные примеры команд **tar**, включая создание архивных файлов с использованием (**tar, tar.gz и tar.bz2**) сжатия, извлечение архивного файла, просмотр содержимого файла , проверки файла, добавления файла или каталога в архив, оценка размера файла/архива **tar** и т. д.

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

&#x20;

**1. Создание файла архива tar**

В приведенном ниже примере команда создаст файл **sedicomm-15-12-20.tar** с каталога **/home/sedicomm** в текущем рабочем каталоге.

```
1# tar cvf sedicomm-15-12-20.tar /home/sedicomm/2/home/sedicomm/3/home/sedicomm/44/home/sedicomm/35/home/sedicomm/26/home/sedicomm/1
```

&#x20;

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

* **c** — Создает новый **.tar** файл архива.
* **v** — показать прогресс создания файла **.tar**.
* **f** — тип имени файла архива.

**2. Создание файла архива tar.gz**

Чтобы создать сжатый файл архива **gzip**, мы используем параметр **z**. Например, приведенная ниже команда создаст сжатый файл **Documents-15-12-20.tar.gz** для каталога **/home/yurii/Documents**.

**Примечание**: расширения **tar.gz** и **tgz** еквивалентны.

```
1# tar cvzf Documents-15-12-20.tar.gz /home/yurii/Documents2ИЛИ3# tar cvzf Documents-15-12-20.tgz /home/yurii/Documents
```

&#x20;[\
![tar](https://blog.sedicomm.com/wp-content/uploads/2018/10/image_2020-12-15_190143.png)](https://blog.sedicomm.com/wp-content/uploads/2018/10/image_2020-12-15_190143.png)

&#x20;

**3. Создание файла архива tar.bz2**

Функция **bz2** сжимает и создает файл архива меньшего размера, чем **gzip**. Сжатие **bz2** требует больше времени для сжатия и распаковки файлов по сравнению с **gzip**. Чтобы создать сжатый файл **tar**, мы используем параметр –**j**. Следующая команда примера создаст файл **Documents.tar.bz2** для каталога **/home/yurii/Documents**.

**Примечание: tar.bz2** и **tbz** аналогичны **tb2**.

```
1# tar cvfj Documents.tar.bz2 /home/yurii/Documents2ИЛИ3# tar cvfj Documents.tar.tbz /home/yurii/Documents4ИЛИ5# tar cvfj Documents.tar.tb2 /home/yurii/Documents
```

&#x20;

**4. Разархивирование архива tar**

Чтобы распаковать или извлечь файл **tar**, просто выполните следующую команду, используя опцию **x** (extract). Например, приведенная ниже команда распакует файл **public\_html-15-12-20.tar** в текущий рабочий каталог. Если вы хотите разархивировать файлы в другой каталог, используйте опцию –**C** (specified directory).

```
1tar xvf Documents.tar2ИЛИ3tar xvf Documents.tar -C /home/yurii/Documents/UnArch
```

&#x20;

**5. Разархивирование tar.bz2**

Чтобы распаковать **tar.bz2** архив, просто запустите следующую команду. Если же вы хотите разархивировать в другой каталог, используйте опцию **-C** и путь к каталогу, как показано в приведенном выше примере (папка должна уже существовать).

```
1tar xvf Documents.tar.bz22ИЛИ3tar xvf Documents.tar.bz2 -C /home/yurii/Documents/UnArch
```

&#x20;

[![tar](https://blog.sedicomm.com/wp-content/uploads/2018/10/image_2020-12-15_191441.png)](https://blog.sedicomm.com/wp-content/uploads/2018/10/image_2020-12-15_191441.png)

**6. Разархивирование архива tar.gz**

Чтобы разархивировать сжатый файл **tar.gz**, просто используйте ту же команду что для  **tar.bz2** команду.

```
1tar xvf Documents.tar.bz2
```

&#x20;

[![tar](https://blog.sedicomm.com/wp-content/uploads/2018/10/image_2020-12-15_191441.png)](https://blog.sedicomm.com/wp-content/uploads/2018/10/image_2020-12-15_191441.png)

&#x20;

**7. Просмотр содержимого файла архива tar**

Чтобы просмотреть содержимое файла **tar**, просто запустите его с опцией **t** (просмотр содержимого). В приведенной ниже команде будет отображаться содержимое файла **Documents.tar.bz2**.

```
1# tar tvf Documents.tar.bz2
```

&#x20;

[![tar](https://blog.sedicomm.com/wp-content/uploads/2018/10/image_2020-12-15_192025.png)](https://blog.sedicomm.com/wp-content/uploads/2018/10/image_2020-12-15_192025.png)

&#x20;

**8. Просмотр содержимого tar.gz**

Используйте ту же команду для отображения содержимого файла **tar.gz**.

&#x20;

[![tar](https://blog.sedicomm.com/wp-content/uploads/2018/10/image_2020-12-15_192025.png)](https://blog.sedicomm.com/wp-content/uploads/2018/10/image_2020-12-15_192025.png)

&#x20;

**9. Просмотр содержимого tar.bz2**

Используйте ту же команду для отображения содержимого файла **tar.bz2**.

&#x20;

[![tar](https://blog.sedicomm.com/wp-content/uploads/2018/10/image_2020-12-15_192025.png)](https://blog.sedicomm.com/wp-content/uploads/2018/10/image_2020-12-15_192025.png)

&#x20;

**10. Разархивирование отдельного файла из tar**

К примеру, чтобы извлечь один файл с именем **File1** из **Documents.tar**, используйте следующую команду.

```
1# tar xvf Documents.tar home/yurii/Documents/Folder1/File12ИЛИ3# tar --extract --file=Documents.tar home/yurii/Documents/Folder1/File1
```

&#x20;

**11. Разархивирование отдельного из файла tar.gz**

Чтобы извлечь один файл с именем **File1** из **Documents.tar.gz**, используйте следующую команду.

```
1# ztar xvf Documents.tar.gz home/yurii/Documents/Folder1/File1
```

&#x20;

**12. Разархивирование отдельного файл из файла tar.bz2**

Чтобы извлечь один файл с именем **File1** из **Documents.tar.bz2**, используйте следующую команду.

```
1# jtar zxvf Documents.tar.bz2 home/yurii/Documents/Folder1/File1
```

&#x20;

**13. Разархивирование нескольких файлов из tar, tar.gz и tar.bz2**

Чтобы извлечь несколько файлов из архива **tar**, **tar.gz** и **tar.bz2** необходимо использовать приведенную ниже команду. Эта команда извлекает из архива **“file 1”** и **“file 2”**.

```
1# tar xvf sedicomm.tar "file 1" "file 2"2# tar zxvf sedicomm.tar.gz "file 1" "file 2"3# tar jxvf sedicomm.tar.bz2 "file 1" "file 2"
```

&#x20;

**14. Извлечение группы файлов с помощью метасимволов**

Чтобы извлечь группу файлов, мы используем метасимволы. Например, чтобы извлечь группу файлов с расширением **.txt** из архива **tar**, **tar.gz** и **tar.bz2** необходимо использовать следующую команду:

```
1# tar xvf sedicomm.tar --wildcards '*.txt'2# tar zxvf sedicomm.tar.gz --wildcards '*.txt'3# tar jxvf sedicomm.tar.bz2 --wildcards '*.txt'
```

&#x20;

**15. Добавление файла или директории в файл архива tar**

Чтобы добавить файлы или каталоги в существующий файл архива **tar**, мы используем параметр **r** (присоединить). Например, мы добавляем файл **File.txt** и каталог **Folder** в существующий архив **sedicomm.tar**.

```
1# tar rvf sedicomm.tar File.txt2# tar rvf sedicomm.tar Folder
```

&#x20;

**16. Добавление файлов или каталогов в tar.gz и tar.bz2.**

У **tar** нет возможности добавлять файлы или каталоги в существующий сжатый файл **tar.gz** и **tar.bz2**. Если мы попытаемся, то получим следующую ошибку:

```
1tar: This does not look like a tar archive2tar: Skipping to next header3tar: Error exit delayed from previous errors
```

&#x20;

**17. Проверка размера tar, tar.gz и tar.bz2.**

Чтобы проверить размер архива **tar**, **tar.gz** и **tar.bz2**, используйте следующую команду. Например, приведенная ниже команда отобразит размер архивного файла в Килобайтах.

```
1# tar czf - Documents.tar | wc -c2355
```

&#x20;

[![tar](https://blog.sedicomm.com/wp-content/uploads/2018/10/image_2020-12-15_194154.png)](https://blog.sedicomm.com/wp-content/uploads/2018/10/image_2020-12-15_194154.png)

&#x20;

**Использование опций:**

* **-c** — создать файл архива.
* **-x** — извлечение архивного файла.
* **-v** — показывает ход создания архивного файла.
* **-f** — имя архивного файла.
* **-t** — просмотр содержимого архивного файла.
* **-j** — сжимать архив через **bzip2**.
* **-z** — сжимать архив через **gzip**.
* **-r** — добавлять или обновлять файлы или каталоги в существующий файл архива.
* **-W** — проверка архивного файла.
* **-wildcards** — задание шаблона команде unix **tar**.

&#x20;

**18. Помощь**

Вот и все, надеюсь, что приведенные выше примеры команд **tar** будут полезны для вас, для получения дополнительной информации используйте **tar –help**.

&#x20;
