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

    Как сжать и извлечь файлы с помощью команды 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 / путь / к / каталогу или файлу

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

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

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

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

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

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

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

    Хотя 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

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

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

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

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

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

    --исключать Переключатель очень мощный. Он не принимает имена каталогов и файлов - он на самом деле принимает шаблоны. С этим можно сделать гораздо больше. Например, вы можете заархивировать весь каталог и исключить все файлы .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

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

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

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

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


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

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