Создание простого архива tar директории в Linux

В этой статье рассмотрим простейший вариант создания архива tar в Linux из командной строки. На самом деле, утилита tar имеет очень большое количество опций и настроек. Наверняка этому вопросу даже посвящены отдельные книги, но в частном случае требуется всего лишь создать архив папки на сервере для того, чтобы эту папку можно было скачать всю и сразу, а не по одному файлу. Поэтому разберём процесс архивирования именно в этом ключе. Если будут нужны подробности, есть help по tar: tar --help или и того круче, есть мануал: man tar.



Опции архиватора tar, которые могут пригодиться при создании архива на сервере

Вызов утилиты архивирования tar в Linux крайне прост:

tar опции файл_архива /путь_до_того,_что_нужно_архивировать
  • tar — это вызов утилиты tar
  • опции — указание того, как использовать утилиту tar (рассмотрим ниже)
  • файл_архива — путь к файлу (не обязательно, если отсутствует, архив будет создан в текущей директории) и название файла, куда поместить готовый архив
  • /путь_до_того,_что_нужно_архивировать — путь до папки (с указанием самой папки) или файла (с указанием имени файла), которые должны быть помещены в архив tar

Список опций, которые могут потребоваться при использовании архиватора tar

  • A — добавить файл к архиву
  • c — создать архив в linux
  • d — сравнить файлы архива и распакованные файлы в файловой системе
  • j — сжать архив с помощью Bzip
  • z — сжать архив с помощью Gzip
  • r — добавить файлы в конец архива
  • t — показать содержимое архива
  • u — обновить архив относительно файловой системы
  • x — извлечь файлы из архива
  • v — показать подробную информацию о процессе работы
  • f — файл для записи архива
  • -C — распаковать в указанную папку
  • --strip-components — отбросить n вложенных папок

Примеры использования утилиты tar для создания архива

На самом деле, всё можно выяснить экспериментальным путём, но надо же с чего-то начать. Заархивируем папку user в домашней директории пользователя root:

root@server:~# tar -zcvf user.tar.gz ~/user
tar: Removing leading `/' from member names
/root/user/
/root/user/delete-mysql.sh
/root/user/create-mysql.sh
/root/user/user+domain.sh
/root/user/user+terminate.sh
/root/user/user+main.sh

Используем опции:

  • z для создания Gzip-архива,
  • c указываем, что создаём архив,
  • v чтобы видеть, что будет помещаться в архив,
  • f поместим результат работы архиватора в файл.

Примечательным в этом примере является то, что tar полностью копирует файловую структуру по указанному пути. Для того, чтобы нагляднее пояснить это, рассмотрим ещё пару примеров. Укажем относительный, (а не абсолютный, как в примере выше) путь до папки, которую помещаем в архив. Получаем вообще странную картину папок, попадающих в архив:

root@server:~# tar -zcvf user.tar.gz ./user
./user/
./user/delete-mysql.sh
./user/create-mysql.sh
./user/user+domain.sh
./user/user+terminate.sh
./user/user+main.sh

В общем, так можно, но лучше не делать. =)

Ну и рабочий вариант: просто указать имя папки, которую нужно поместить в архив, а сам архив поместим в папку var:

root@server:~# tar -zcvf /var/user.tar.gz user
user/
user/delete-mysql.sh
user/create-mysql.sh
user/user+domain.sh
user/user+terminate.sh
user/user+main.sh

Архив действительно будет находиться в папке var и содержать именно то, что нужно - папку user со всем её содержимым.

Резюме

Таким способом можно создавать архивы папок на сервере с помощью стандартной для linux утилиты архивации tar.

Для того, чтобы в будущем не было путаницы, что это за файлы, нужно правильно указывать расширения файлов. Хотя tar создаст файл именно с тем расширением, которое будет прописано при его вызове. И даже вообще без расширения. Всё же, рекомендую придерживаться привычной практики и таким архивам давать расширение .tar.gz. Это расширение даже WinRAR понимает. ;)

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню