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

Командата tar в Linux често се използва за създаване на .tar.gz или .tgz архивни файлове, наричани още „tarballs“. Тази команда има голям брой опции, но просто трябва да запомните няколко букви, за да създадете бързо архиви с tar. Командата tar може да извлече и получените архиви.

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

Компресирайте цяла директория или един файл

Използвайте следната команда, за да компресирате цяла директория или един файл в Linux. Той ще компресира и всяка друга директория в указана от вас директория - с други думи, тя работи рекурсивно.

tar -czvf name-of-archive.tar.gz / path / to / directory-or-file

Ето какво всъщност означават тези превключватели:

  • -C: С reate архив.
  • -z: Компресирайте архива с g z ip.
  • -v: Показване на напредъка в терминала при създаване на архив, известен също като режим „ v erbose“. V винаги е незадължителен в тези команди, но е полезен.
  • Г: Позволява ви да определите е ilename на архива.

Да приемем, че имате директория с име „неща“ в текущата директория и искате да я запазите във файл с име archive.tar.gz. Ще изпълните следната команда:

tar -czvf archive.tar.gz неща

Или, да предположим, че в текущата система има директория / usr / local / нещо и искате да я компресирате във файл с име 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, за да излезете от информационната страница, когато сте готови. Можете също да прочетете ръководството за катран онлайн.

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