🗂️ Tar — Работа с архивами в Linux

tar (от tape archive) — один из самых популярных инструментов для работы с архивами в Linux. Он используется для создания архивов и их извлечения. Также поддерживает различные методы сжатия, такие как `gzip`, `bzip2` и `xz`.

Замечание. Большинство команд bash используют порядок аргументов «source destination» — «откуда куда». Tar же делает наоборот:

tar czvf arch.tar.gz file1 path/to/file2

Для создания архива используется команда `tar` с различными опциями для сжатия и настройки архивации.

Команда Описание
tar -cvf file.tar /full/path Создание архива `file.tar` из указанного каталога.
`tar -czvf file.tar.gz /full/path` Создание архива с сжатием в формат `.tar.gz` (gzip). `c` — создать, `v` — отображать процесс, `f` — указание имени файла, `z` — использовать сжатие gzip.
`tar -czvf archive.tar.gz /home/ubuntu/Downloads /usr/local/stuff /home/ubuntu/Documents/notes.txt` Сжать несколько каталогов и файлов в один архив.
`tar -czvf archive.tar.gz /home/ubuntu –exclude=/home/ubuntu/Downloads –exclude=/home/ubuntu/.cache` Исключить каталоги из архивации.
`tar -czvf archive.tar.gz /home/ubuntu –exclude=*.mp4` Исключить файлы с определённым расширением.
`tar -cjvf archive.tar.bz2 stuff` Использование компрессии `bzip2` для создания `.tar.bz2`.
`tar -cjf archive.tar.gz –absolute-names /home/itslinux/Downloads/` Указать абсолютные пути в архиве (для избежания ошибок с путями).
`tar -czf archive.tar.gz -C /opt/backup/` Перейти в каталог `/opt/backup/` и архивировать файлы из него без указания полного пути.
`tar -J` Использование формата `.tar.xz` для сжатия с помощью `xz`.
`tar –exclude /var/www/html/dokuwiki/data/cache -czf "$_file" –absolute-names -T filelist.txt` Перечислить файлы и каталоги для архивирования из текстового файла.
`tar -czf backup.tar.gz -X /path/to/exclude.txt /path/to/backup` Исключить из архивирования файлы и каталоги, указанные в текстовом файле `exclude.txt`.
tar -czvf png.tar.gz images/*.pngПаковать по маске

Для распаковки архивов используется команда tar с различными опциями.

Команда Описание
tar -xvf file.tar.gz Извлечение содержимого архива `file.tar.gz`. `x` — извлечь, `v` — отображать процесс, `f` — имя файла.
tar -xzvf archive.tar.gz Извлечение архива с сжатием `gzip`.
tar -xzvf archive.tar.gz -C /tmp Извлечение архива в указанный каталог `/tmp` или другой путь (опция `-C` указывает каталог).
tar -xvf -C tmp/a/b/c file.tar.gzС помощью ключа «-C» можно указать, в какую директорию распаковать этот архив.
cd tmp/a/b/c && tar xvf ~/archive.tarПерейти в папку и разархивировать туда tar архив. Если же директории tmp/a/b/c нет, то и распаковывать никто ничего не будет.

🔧 На Windows для разархивирования `.tar` архивов можно использовать бесплатную утилиту 7-Zip.


📌 Примечания:

  • Некоторые версии команды tar требуют, чтобы опция `–exclude` шла в начале команды:
    • Пример: tar –exclude /var/www/html/data/ -czf archive.tar.gz
  • При указании каталога в команде для архивации следует использовать путь без завершающего слэша (`/path/directory` вместо `/path/directory/`).