LinuxWindowsКак сделать

Как сжать и извлечь файлы с помощью команды tar в Linux

Команда tar в Linux часто используется для создания архивных файлов .tar.gz или .tgz, также называемых «tarballs». Эта команда имеет большое количество параметров, но вам просто нужно запомнить несколько букв, чтобы быстро создать архивы с помощью tar , Команда tar также может извлечь полученные архивы.

Команда GNU tar, включенная в дистрибутивы Linux, имеет встроенное сжатие. Он может создать архив .tar, а затем сжать его с помощью сжатия gzip или bzip2 в одной команде. Вот почему полученный файл представляет собой файл .tar.gz или .tar.bz2.

Сжатие всего каталога или одного файла

Используйте следующую команду для сжатия всего каталога или одного файла в Linux. Он также сжимает все остальные каталоги внутри указанного вами каталога — другими словами, он работает рекурсивно.

  tar -czvf имя-архива.tar.gz / путь / к / каталогу или файлу 

Вот что на самом деле означают эти переключатели:

  • -c: Создать архив.
  • -z: сжать архив с помощью g z ip.
  • -v: отображать прогресс в терминале при создании архива, также известного как режим « v erbose». В этих командах v необязательно, но полезно.
  • -f: позволяет указать имя файла архива.

Допустим, у вас есть каталог с именем «stuff» в текущем каталоге, и вы хотите сохранить его в файл с именем archive.tar.gz. Вы бы запустили следующую команду:

  tar -czvf archive.tar.gz материал 

Или, скажем, в текущей системе есть каталог / usr / local / что-то, и вы хотите сжать его в файл с именем archive.tar.gz. Вы бы запустили следующую команду:

  tar -czvf archive.tar.gz / usr / local / что-то 

Сжатие нескольких каталогов или файлов одновременно

СВЯЗАННЫЕ: Как управлять файлами из терминала Linux: 11 команд, которые вы должны знать

Хотя tar часто используется для сжатия одного каталога, вы также можете использовать его для сжатия нескольких каталогов, нескольких отдельных файлов или обоих. Просто предоставьте список файлов или каталогов вместо одного. Например, предположим, вы хотите сжать каталог / home / ubuntu / Downloads, каталог / usr / local / stuff и файл /home/ubuntu/Documents/notes.txt. Вы бы просто запустили следующую команду:

  tar -czvf archive.tar.gz / home / ubuntu / Загрузки / usr / local / stuff /home/ubuntu/Documents/notes.txt 

Просто перечислите столько каталогов или файлов, сколько вы хотите сделать резервную копию.

Исключить каталоги и файлы

В некоторых случаях вы можете сжать весь каталог, но не включать определенные файлы и каталоги. Вы можете сделать это, добавив ключ --exclude для каждого каталога или файла, который вы хотите исключить.

Например, допустим, вы хотите сжать каталоги / home / ubuntu, но не хотите сжимать каталоги / home / ubuntu / Downloads и /home/ubuntu/.cache. Вот как вы это сделаете:

  tar -czvf archive.tar.gz / home / ubuntu --exclude = / home / ubuntu / Загрузки --exclude = / home / ubuntu / .cache 

--exclude очень мощный. Он не принимает имена каталогов и файлов — он на самом деле принимает шаблоны. С этим можно многое сделать. Например, вы можете заархивировать весь каталог и исключить все файлы .mp4 с помощью следующей команды:

  tar -czvf archive.tar.gz / home / ubuntu --exclude = *. mp4 

Вместо этого используйте сжатие bzip2

Хотя сжатие gzip чаще всего используется для создания файлов .tar.gz или .tgz, tar также поддерживает сжатие bzip2. Это позволяет создавать сжатые bzip2 файлы, часто называемые файлами .tar.bz2, .tar.bz или .tbz. Для этого просто замените -z для gzip в командах здесь на -j для bzip2.

Gzip работает быстрее, но обычно он сжимается немного меньше, поэтому вы получаете файл несколько большего размера. Bzip2 медленнее, но сжимает немного больше, поэтому вы получаете файл несколько меньшего размера. Gzip также более распространен, с некоторыми урезанными системами Linux, включая поддержку gzip по умолчанию, но не поддержку bzip2. В целом, однако, gzip и bzip2 — это практически одно и то же, и оба будут работать одинаково.

Например, вместо первого примера, который мы предоставили для сжатия каталога вещи, вы должны выполнить следующую команду:

  tar -cjvf archive.tar.bz2 материал 

Извлечь архив

Когда у вас есть архив, вы можете извлечь его с помощью команды tar. Следующая команда извлечет содержимое файла archive.tar.gz в текущий каталог.

  tar -xzvf archive.tar.gz 

Это то же самое, что команда создания архива, которую мы использовали выше, за исключением того, что ключ -x заменяет ключ -c . Это указывает на то, что вы хотите извлекать архив, а не создавать его.

Вы можете извлечь содержимое архива в определенный каталог. Вы можете сделать это, добавив ключ -C в конец команды. Например, следующая команда извлечет содержимое файла archive.tar.gz в каталог / tmp.

  tar -xzvf archive.tar.gz -C / tmp 

Если файл представляет собой сжатый bzip2 файл, замените «z» в вышеприведенных командах на «j».


Это простейшее возможное использование команды tar. Команда включает в себя большое количество дополнительных опций, поэтому мы не можем перечислить их все здесь. Чтобы получить больше информации. выполните команду info tar в оболочке, чтобы просмотреть страницу с подробной информацией о команде tar. Нажмите клавишу q, чтобы выйти из информационной страницы, когда закончите. Вы также можете прочитать руководство пользователя tar онлайн .

Если вы используете графический рабочий стол Linux, вы также можете использовать утилиту сжатия файлов или файловый менеджер, включенный в ваш рабочий стол, для создания или извлечения файлов .tar. В Windows вы можете извлекать и создавать архивы .tar с помощью бесплатной утилиты 7-Zip .

Похожие посты
Как сделать

Как получить возмещение за покупки в iTunes или App Store

Как сделать

Поверхностное перо не работает? Вот как это исправить

Как сделать

Как настроить и использовать Fire TV Recast

Как сделать

Как изменить рингтон по умолчанию на вашем iPhone