Работа с архивами в Linux

Иногда бывает необходимо создать архив с резервной копией данных, для этого достаточно воспользоваться утилитой tar. tar используется для создания архива, то есть объединяет файлы и/или директории в один общий файл. Важно знать, что он самостоятельно не использует сжатие, а просто создает архив. После этого полученный файл *.tar сжимается архиватором, например, gzip, сжатые архивы обычно имеют расширение .tar.gz или .tar.bz2. Или воспользоватся другими архиваторами, например zip, который может одновременно и архивировать, и сжимать файлы.


tar создание и распаковка архива:

  • tar -cvf archive.tar /full/path — создать .tar
  • tar -xvf archive.tar - извлечь содержимое архива .tar в текущую директорию
  • tar -xvf archive.tar -С /full/path - извлечь содержимое архива .tar в указанный каталог
  • tar -xvf archive.tar file1 dir/file2 - извлечь из архива .tar файлы file1 и dir/file2

  • tar -cvjf archive.tar.bz2 /full/path - создать .tar.bz2 архив
  • tar -xvjf archive.tar.bz2 - извлечь содержимое архива .tar.bz2 в текущую директорию

  • tar -cvzf archive.tar.gz /full/path - создать .tar.gz архив
  • tar -xvzf archive.tar.gz - извлечь содержимое архива .tar.gz в текущую директорию

Опции команды tar:

  • -c, --create - создать новый архив
  • -C, --directory - распаковать в указанный каталог
  • -z, --gzip – используется для создания/распаковки *.tar.gz файлов
  • -j, --bzip2 - используется для создания/распаковки *.tar.bz2 файлов
  • -x, --extract - извлечь файлы из архива
  • -v, --verbose - подробный вывод информации.
  • -f, --file - является обязательной опцией. Эта опция записывает в файл.
  • -t, --list - показать содержимое архива
  • -M, --multi-volume - создать/показать/распаковать многотомный архив
  • -A, --catenate - склеить файлы tar в один архив
  • -d, --diff - найти различия между архивом и файловой системой
  • --exclude - исключить файлы или каталоги
  • --delete - удалить из архива
  • -r, --append - добавить файлы в конец архива
  • -u, --update - добавить только новые версии файлов файлов

Пример создания архива. Архивируем все файлы и папки в директории /var/log/, исключим каталог /var/log/http/:

tar --exclude='/var/log/http/*' -cvzf archive.tar.gz /var/log/*


zip - создание и распаковка архива:

  • zip -r archive /full/path - создает архив archive.zip с содержимым каталога /full/path.
  • unzip archive.zip -d /full/path - распаковать архив archive.zip в папку /full/path

Опции команды zip:

  • -r - архивировать рекурсивно
  • -9 - задаёт степень сжатия от 1 до 9. 0 - без сжатия
  • -x "/path" - опция, позволяющая исключить указанную папку или файл из архива
  • -z - добавить комментарий для архива
  • -e - задать пароль на архив
  • -v - подробный вывод информации.

Пример создания архива. Архивируем все файлы и папки в директории /var/log/ и /var/spool/, исключим каталог /var/log/http/:

zip -r -9 archive.zip /var/log/* /var/spool/* -x "/var/log/http/*"

Комментарии (0)