არქივაცია ლინუქსში gzip-ით
თუ თქვენ სადმე შეგხვდებათ ფაილი გაფართოებით .gz უნდა იცოდეთ რომ ეს არის არქივი. რომელიც შექმნილია Lempel-Ziv ალგორითმით. ლინუქსთან მუშაობისას ასეთ ფაილებთან ხშირად მოგიწევთ შეხება, ამიტომ შეძლებისდაგვარად დეტალურად განვიხილოთ ფაილების შესაბამისი დაარქივება და ამოარქივება.
ლინუქსში ასეთ ფაილებთან სამუშაოდ გამოიყენება ბრძანება gzip. როგორც წესი ის უკვე აყენია სისტემაში. წინააღმდეგ შემთხვევაში თქვენ შეგიძლიათ დააყენოთ ის:
- Debian ტიპის სისტემებზე: sudo apt install gzip
- RHEL/CentOS ტიპის სისტემებზე: yum install gzip
gzip-ით როგორც წესი არქივდება ერთი ფაილი
gzip file.txt
უნდა გაითვალისწინოთ რომ gzip-ით არქივის შექმნისას იშლება ორიგინალი ფაილი, ანუ ის გადადის არქივში. თუ თქვენ გჭირდებათ რომ ფაილი დარჩეს და დამატებით მისი არქივი შეიქმნას გამოიყენეთ -c (copy) ან ზოგიერთ ახალ ვერსიაში -k (keep) სვიტჩი.
gzip -c file.txt
gzip -k file.txt
რა თქმა უნდა თქვენ მიყოლებით შეგიძლიათ მიუთითოთ რამდენიმე ფაილი დაარქივებისთვის
gzip file1.txt file2.txt file3.txt
უბრალოდ შეიქმენა სხვადასხვა არქივის ფაილები, ჩვენ შემთხვევაში: file1.txt.gz, file2.txt.gz და file3.txt.gz
თუ საჭიროა რომ რამოდენიმე ფაილი მაინცდამაინც ერთ gz არქივში მოიქცეს გამოიყენეთ concatenate მეთოდი, კერძოდ
gzip -c file1.txt > files.gz #ვიღებთ პირველ ფაილს და > ოპერატორით ვათავსებთ მას files არქივში
gzip -c file2.txt >> files.gz #ვიღებთ მეორე ფაილს და >> ოპერატორით ვათავსებთ მას იგივე არქივის ბოლოში
თუმცა მართალი გითხრათ რამოდენიმე ფაილის გაერთიანებისთვის უფრო ხშირად გამოიყენება tar ბრძანება
თუ თქვენ გაქვთ რაიმე ფოლდერი, სადაც უამრავი ფაილია და თქვენ გინდათ სწრაფად მოახდინოთ ყველა ამ ფაილის არქივაცია, ისე რომ სათითაოდ არ მიუთითოთ ყველა ფაილი, გამოიყენეთ -r (რეკურსია) სვიტჩი
gzip -r foldername
ამ დროს შეიქმენა არა ფოლდერის არქივი, არამედ მასში არსებული ყველა ფაილის ცალ-ცალკე არქივი.
თუ საჭიროა გაიგოთ თუ რამდენი ადგილი მოიგეთ შეკუმშვის ოპერაციით თქვენ გამოგადგებათ ბრძანება:
gzip -l file.txt.gz
კრიტიკული მნიშვნელობის ფაილების არქივაციისას საჭიროა შევამოწმოთ არქივაციის სისწორე. გამოიყენეთ სვიტჩი -t (test) და -v (verbose), რათა შეცდომის არსებობისას მათი აღწერა მიიღოთ
gzip -tv file.txt.gz
ფაილების ამოარქივება შეგიძლიათ 2 გზით:
gzip -d file.txt.gz
gunzip file.txt.gz
მსგავსად არქივაციის, ამოარქივების დროს წაიშლება არქივი და დარჩება მხოლოდ ამოარქივებული ფაილი. თუ საჭიროა როგორც არქივი, ისე ამოარქივებული ფაილი გამოიყენეთ -c სვიტჩი:
gunzip -c file.txt.gz > file.txt
gzip-ს აქვს კომპრესიის 9 დონე, სადაც 1 დონე არის ყველაზე მსუბუქი და სწრაფი, ხოლო მეცხრე ყველაზე მაღალი და ნელი.
gzip -1 file.txt # ყველაზე სწრაფი მაგრამ უმნიშნველო შეკუმშვა
gzip -9 file.txt #კუმშავს მაქსიმალურად, მაგრამ პროცესი ნელია
შეიძლება თქვენ გაგიჩნდათ კითხვა თუ სტანდარტულად რა დონეზე კუმშავს gzip ფაილს. ამაზე ოფიციალური პასუხი ჯერ არ არის, თუმცა ცდების შედეგად მივედი დასკვნამდე, რომ სტანდარტულად შეკუმშვის დონე დაახლოებით 6ია.
gzip პაკეტს გააჩნია ასევე ისეთი უტილიტები, როგორიცაა zcat, zgrep და zless/zmore. როგორც ალბათ უკვე მიხვდით ეს არის сat, grep და less/more ბრძანებები, რომლებიც მოქმედებენ პირდაპირ არქივებზე, მათი ამოარქივების გარეშე.
საბოლოო ჯამში უნდა ითქვას რომ gzip მთავარი მიზანია ფაილების შეკუმშვა. თუმცა ზოგიერთი ფაილი, როგორიცაა JPEG ან MP3 არამთუ შეიძლება პრაქტიკულად არ შეიკუმშოს, არამეტ ზომაშიც გაიზარდოს მათი gzip-ით არქივაციის შედეგად. ეს ხდება იმიტომ, რომ აღნიშნული ფაილების სტანდარტი უკვე ითვალისწინებს შეკუმშვას და მათი დამატებითი შეკუმშვის უარყოფითი ეფექტი WinRAR-ით ან WinZip-ით არქივაციისაც შეიძლება გვქონდეს.