🗂️ 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/`).