ზოგადი ინფორმაცია

tar (tape archive) წარმოადგენს კლასიკურ ინსტრუმენტეს არქივაციისთვის. როგორც სახელიდან ჩანს ეს ინსტრუმენტი გამოიყენებოდა ჯერ კიდევ მაშინ, როცა ბექაფისთვის იყენებდნენ მაგნიტურ ლენტებს (tape). ასეთი არქივების მთავარი დანიშნულება რამოდენიმე ფაილის გაერთიანება ერთ დიდ ფაილში, რაც საბოლოო ჯამში აადვილებს მათ მართვას და შენახვას.

განსხვავებით windows-ს სისტემებისგან, სადაც არქივი როგორც წესი უკვე შეკუმშულია, ლინუქსში არქივში იგულისხმება უბრალოდ რამოდენიმე ფაილის ერთად გაერთიანება tar გამოყენების შედეგად თქვენ მიიღეთ არქივს შეკუმშვის გარეშე, ე.წ. plain არქივს, ან თქვენ შეიძლება საქმე გქონდეთ tgz-სთან, რომელიც არის უკვე gzip-ით შეკუმშულ არქივი. კიდე უფრო ხარისხიანად კუმშავს bzip2 სტანდარტი. ასეთი სტანდარტით შეკუმშულ არქივებს აქვთ დაბოლოება tar.bz2.

პირადად მე არ მეგულება დღეს ისეთი დისტრიბუტივი სადაც არ ეყენება tar, მაგრამ თუ ასეთს გადაეყარეთ tar-oს დაყენებას ადვილად შეძლებთ:

СentOS/Red Hat

sudo yum install tar

Ubuntu/Debian

sudo apt-get install tar

არქივის შექმნა

იმისთვის რომ შექმნათ tar არქივი თქვენ დაგჭირდებათ შემდეგი ბრძანება:

tar -cf file.tar file1 file2

ამ შემთხვევაში с პარამეტრი ნიშნავს შექმნას (сreate), ხოლო f პარამეტრის მეშვეობით ხდება არქივის ფაილის სახელის მითითება. არქივი იქმნება file1, file2-სგან. შედეგათ ჩვენ მივიღებთ არქივს სახელად file.tar. როგორც ვხედავთ უშუალოდ ბრძანების მერე მოდიან ბრძანების პარამეტრები, მერე შესაქმნელი არქივის სახელი, ხოლო შემდეგ მიეთითება ფაილები, რომლებიც უნდა დაარქივდეს.

თუ გნებავთ დეტალური ინფორმაცია მიიღოთ tar-ის ყველა მოქმედებაზე, შესასრულებელ პარამეტრებს გაურიეთ -v (verbose)

სად იქმნება არქივი? სტანდარტულად იქ სადაც ეხლა იმყოფებით ტერმინალში ( ანუ რა მისამართსაც აჩვენებს сommand prompt). თუ საჭიროა არქივის შექმნა სხვაგან მიუთითეთ ფაილის სახელი არქივის სახელში. უნდა ვიცოდეთ ისიც, რომ თუ დასაარქივებელი ფაილებს ჩვენ ვუთითებთ სრული მისამართის გარეშე, ბრძანება მათ ეძებს იქ სადაც ეხლა იმყოფებით ტერმინალში. თუ ფაილი სხვაგან დევს, საჭიროა სრული მისამართის მითითება ფაილის სახელში. ასე რომ თუ საჭიროა, ჩვენ შეგვიძლია ვიყოთ ერთგან, შევქმნათ არქივი მეორეგან მესამე ადგილას არსებული ფაილებისგან მაგალითად:

tar -cf /media/usbstick/file.tar  ~/Desktop/book1.pdf  ~/Desktop/book2.pdf

ამ კონკრეტულ მაგალითში არქივი იქმნება ფლეშკაზე, დესკტოპზე არსებული pdf ფაილებისგან.

შესაძლებელია ფოლდერის არქივი (ანუ რეალურად ბექაფი) ისე, რომ რამოდენიმე შიდა ფოლდერი ან ფაილი გამოვოტოვოთ:

tar -czvf archive.tar.gz /home/tux –exclude=/home/tux/Downloads –exclude=/home/tux/.cache

ამ მაგალითში ჩვენ მთლიანად ვაარქივებთ იუზერ tux-ს, ოღონდ მის დაუნლოდების და ქეშის ფოლდერის გარეშე.

იმისთვის, რომ არქივიდან ფაილების ამოღების გარეშე დავათვალიეროთ მისი შიგთავსი გამოგვადგება ბრძანება

tar -tvf file.tar

დაარქივებაის დროს თქვენ შეიძლება გამოიყენე კიდევ ერთი საინტერესო პარამეტი -p (preserve), რომელიც მოწედებულია ზუსტად გადაიტანოს არქივში ფაილის მფლობელზე (owner) და ფაილზე არსებულ უფლებებზე (permissions).

ამოარქივება

ამოარქივება ხდება -x (eXtract) პარამეტრით -с პარამეტრის ნაცვლად

tar xvf myarchive.tar

თუ თქვენ ერთხელ მაინც გამოიყენეთ -tvf, ნახავდით, რომ არქივში ფაილები ჩანს ე.წ. რელატიური მისამართებით. შესაბამისად თქვენ შეგიძლიათ ამ მისამართების მითითებით ამოიღოთ ფაილები.

tar -xf archive.tar “./full/docs/biology.pdf”

tar -xf archive.tar “./full/docs/biology.pdf” “./full/docs/chemistry.pdf”

შესაძლეებელია ასევე wildcard-ების გამოყენება (ანუ რაღაც საერთო დამახასიათებლის მქონე ყველა ფაილის ამოღება):

tar -xvf archive.tar –wildcards “*.pdf”

gzip და bzip2 ინტეგრაცია

როგორც წესი პრაქტიკაში თქვენ შეგხვდებათ tar.gzip და tar.bz2 ფაილები. ეს ნიშნავს, რომ ფაილები არამარტო გაერთიანებულია ერთ ფაილში, არამედ მოხდა მაგათი ამა თუ იმ დონით შეკუმშვა.

როცა საქმე ეხება gzip-ს (ანუ tar.gz ან tgz ფაილებს), ჩვენთვის ჩვენ უკვე ნაცნობ ბრძანებებს ემატება -z პარამეტრი, მაგალითად

tar -czvf archive.tgz ~/Desktop/mainfile.pdf #არქივის შექმნა
tar -xzvf archive.tgz #ამოარქივება

როცა საქმე ეხება bzip2-ს (ანუ tar.bz2 ან tbz2 ფაილებს), ჩვენთვის ჩვენ უკვე ნაცნობ ბრძანებებს ემატება -j პარამეტრი, მაგალითად

tar -jcvf archive.tbz2 ~/Desktop/myfile.pdf #არქივის შექმნა
tar -jxvf archive.tgz #ამოარქივება

P.S. ნუ დაგაბნევთ პარამეტრების სხვადასხვა განლაგება, მაგას პრაქტიკული მნიშვნელობა აქვს ლინუქსში.