Как сжимать и извлекать файлы с помощью команды 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: C создать архив.
  • -z: сжать архив с помощью g z ip.
  • -v: прогресс дисплея в терминале во время создания архива, также известный как « v режим erbose». V в этих командах всегда необязателен, но полезен.
  • -f: Позволяет указать ф ilename архива.

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

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

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

tar -czvf archive.tar.gz / usr / local / something

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

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

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

tar -czvf archive.tar.gz / home / ubuntu / Downloads / 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 / Downloads --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.