Red hat Linuxda Arxivləmə

Tar-Command-in-Linux

Fayl arxivlənməsi bir və ya daha çox faylın mümkün qədər səmərəli şəkildə ötürülməsi və ya saxlanması lazım olduqda istifadə olunur. Bu fəsildə araşdırılan iki əsas aspekt var:

  •  Arxivləşdirmə: Birdən çox faylları bir-birinə birləşdirir ki, bu da fərdi sənədlərdə ötürmə xərcləri aradan qaldırır və faylların ötürülməsini asanlaşdırır.
  • Sıxılma: lazımsız məlumatları silməklə faylları daha kiçik edir

Faylları sıxılması

 Sıxılma, faylın həm bərpa oluna biləcəyi şəkildə saxlanarkən, həm də faylın saxlanması və ya ötürülməsi üçün lazım olan yaddaş sahəsinin miqdarını azaldır. Faylın sıxılmış versiyası adətən baxılmır və ya istifadə edilmir, bunun əvəzinə istifadə edilmədən əvvəl dekompressiya olunur.

Sıxılma alqoritmi, kompüterin orijinal faylı kodlaşdırması üçün istifadə etdiyi bir prosedurdur və nəticədə onu daha kiçik hala gətirir. Kompüter alimləri bu alqoritmləri araşdırır və daha sürətli işləyə bilən və ya giriş faylını daha kiçik edə biləcək daha yaxşılarını hazırlayırlar.

Sıxılmanın iki növü var:

  •  Zərərsiz: Fayldan heç bir məlumat çıxarılmır. Bir faylı orijinala qaytarmaq üçün faylda orijinala bənzər bir şey saxlanılır.
  • Zərərli: Məlumat fayldan silinə bilər. Fayl dekompressiyası zamanı orijinaldan bir qədər fərqli bir faylla nəticələnəcək şəkildə sıxılmışdır.

Ümumiyyətlə, insan gözləri və qulaqları şəkillərdə və səslərdə, xüsusən də monitorda görünən və ya dinamiklər üzərindən çalınan cüzi qüsurları hiss etmir. Zərərli sıxılma tez-tez mediaya fayda verir, çünki daha kiçik fayl ölçüləri ilə nəticələnir və insanlar dəyişdirilmiş məlumatlarla orijinal versiya arasındakı fərqi deyə bilmirlər. Sənədlər, qeydlər və proqramlar kimi toxunulmaz qalmalı olan fayllar üçün isə itkisiz sıxılma lazımdır.

GIF, PNG və JPEG kimi görüntü formatlarının əksəriyyəti zərərli sıxılma tətbiq edir. Ümumiyyətlə keyfiyyəti nə qədər qorumaq istədiyinizə özünüz qərar verə bilərsiniz. Daha aşağı bir keyfiyyət daha kiçik bir sənədlə nəticələnir, ancaq dekompressiyadan sonra kobud kənarlar və ya rəngsizləşmə kimi nəticələr görə bilərsiniz. Yüksək keyfiyyət orijinal görünüşə bənzəyəcək, ancaq fayl ölçüsü orijinala daha yaxın olacaqdır.

Linux, faylları sıxışdırmaq üçün bir neçə vasitə təmin edir; ən çox yayılanı gzip dir. Burada sıxılmadan əvvəl və sonra bir fayl göstəririk:

sysadmin@localhost:~$ cd Documents
sysadmin@localhost:~/Documents$ ls -l longfile*
-rw-r--r-- 1 sysadmin sysadmin 66540 Dec 20  2017 longfile.txt
sysadmin@localhost:~/Documents$ gzip longfile.txt
sysadmin@localhost:~/Documents$ ls -l longfile*
-rw-r--r-- 1 sysadmin sysadmin 341 Dec 20  2017 longfile.txt.gz

Əvvəlki nümunədə longfile.txt  adlı bir fayl var ki, bu da 66540 baytdır. Fayl yeganə arqument olaraq faylın adı ilə gzip  əmrini deməklə  sıxılır. Bu əmr tamamlandıqdan sonra orijinal sənəd yox oldu və .gz  fayl uzantısı olan sıxılmış bir versiya öz yerində qaldı. İndi fayl ölçüsü 341 baytdır.

gzip  əmri bu məlumatı, burada göstərildiyi kimi –l seçimi istifadə edərək təmin edəcək:

sysadmin@localhost:~/Documents$ gzip -l longfile.txt.gz
         compressed        uncompressed  ratio uncompressed_name
                341               66540  99.5% longfile.txt

Sıxılma nisbəti 99.5% olaraq verilir, bundan əlavə, fayl açıldıqda yenidən longfile.txt adlanacaqdır.

Sıxılmış fayllar ya gzip  əmrindən və ya gzip –d  əmrindən istifadə edərək orijinal formasına bərpa edilə bilər. Bu proses dekompressiya adlanır. Gunzip öz işini etdikdən sonra longfile.txt faylı orijinal ölçüsünə və fayl adına bərpa olunur.

sysadmin@localhost:~/Documents$ gunzip longfile.txt.gz
sysadmin@localhost:~/Documents$ ls -l longfile*
-rw-r--r-- 1 sysadmin sysadmin 66540 Dec 20  2017 longfile.txt

Buna fikir verin : gunzip  əmri, gzip ‘i düzgün parametrlərlə çağıran bir skriptdir .

gzip  və gunzip üçün faktiki olaraq eyni şəkildə işləyən digər əmrlər də var. bzip2  və bunzip2 , xzunxz var.

gzip  əmrində Lempel-Ziv məlumatların sıxılma alqoritmi istifadə olunur, bzip  utilitləri isə daha çox CPU vaxtı hesabına gzip -dən kiçik faylları sıxışdıra bilən Burrows-Wheeler blok çeşidlənməsi adlı fərqli bir sıxılma alqoritmindən istifadə edir. Bu fayllar bir .gz uzantısı əvəzinə .bz və ya .bz2 uzantısına sahib olduqları üçün fərqləndirilə bilər.

xz  və unxz  alətləri Lempel-Ziv-Markov (LZMA) zəncir alqoritmindən istifadə etdikləri üçün gzip  və gunzip  kimi funksionaldır, bu da ümumiyyətlə əlaqəli daha yaxşı sıxılma nisbətlərini təmin edərkən gzip  ilə paralel olan aşağı dekompressiya CPU vaxtı ilə nəticələnə bilər. xz  əmri ilə sıxılmış fayllar .xz uzantısından istifadə edir.

9.3 Arxivləşdirmə

Kiməsə göndərmək üçün bir neçə faylınız olsa, hər birini ayrı-ayrılıqda sıxa bilərsiniz. Sıxılmamış sənədləri göndərdiyinizə nisbətdə daha az həcmə malik məlumat əldə edərdiniz, lakin yenə də bir anda bir çox faylla işləməli olacaqsınız.

Arxivləşdirmə bu problemin həllidir. Arxivləşdirmək üçün ənənəvi UNIX proqramı TApe aRchive -ın qısa bir forması olan tar adlanır. tar əmri bir neçə fayl götürür və ötürülmənin digər ucundakı orijinal sənədlərə yenidən bölünə bilən bir çıxış faylı yaradır.

tar komandasının üç rejimi var:

  • Create: Bir sıra sənədlərdən yeni bir arxiv hazırlayın.
  • Extract: Bir və ya daha çox faylı arxivdən çıxarın.
  • Siyahı: Arxivin məzmununu çıxartmadan göstərin..

 Rejimi yadda saxlamaq, istədiyinizi etmək üçün lazım olan komanda sətri seçimlərini anlamaq üçün vacibdir. Rejimə əlavə olaraq, bir komanda sətrinə bir çox fayl adını daxil edə bildiyiniz üçün arxivin adını harada göstərəcəyinizi unutmayın.

9.3.1 Create rejimi

tar -c [-f ARCHIVE] [OPTIONS] [FILE...]

tar  əmri ilə arxiv yaratmaq üçün iki adlandırılmış seçim tələb olunur:

OptionFunction
-cArxiv yaradın.
-f ARCHIVEArxiv sənədindən istifadə edin. Archive arqumenti, ortaya çıxan arxiv sənədinin adı olacaqdır.

Aşağıdakı nümunə, bir tarball adlanan bir çox fayldan yaradılan bir tar faylını göstərir. Birinci arqument alpha_files.tar adlı bir arxiv yaradır. * arxivdə alpha  ilə başlayan bütün faylları daxil etmək üçün istifadə olunur:

sysadmin@localhost:~/Documents$ tar -cf alpha_files.tar alpha*
sysadmin@localhost:~/Documents$ ls -l alpha_files.tar
-rw-rw-r-- 1 sysadmin sysadmin 10240 Oct 31 17:07 alpha_files.tar

alpha_files.tar  -ın son ölçüsü 10240 baytdır. Normalda, tarball faylları, orijinal faylları yenidən hazırlamaq barədə yerüstü məlumatlara görə birləşdirilmiş giriş sənədlərindən bir qədər böyükdür. Tarballar həm  gzip  istifadə edərək ,həm də -z  seçimi ilə tar  istifadə edərək daha asan ötürmə üçün sıxıla bilər.

OptionFunction
-zCompress (or decompress) an archive using the gzip command.

The next example shows the same command as the prior example, but with the addition of the -z seçimi var.

sysadmin@localhost:~/Documents$ tar -czf alpha_files.tar.gz alpha*
sysadmin@localhost:~/Documents$ ls -l alpha_files.tar.gz
-rw-rw-r-- 1 sysadmin sysadmin 417 Oct 31 17:15 alpha_files.tar.gz

Çıxış tarballnın özündən daha kiçikdir və ortaya çıxan fayl sıxılma detallarını görmək üçün istifadə edilə bilən gzip əmri ilə uyğun gəlir. Sıxılmayan fayl ayrı bir addımda büzdüyünüz təqdirdə eyni ölçüdə olur:

Fayl uzantıları bir faylın özünü aparma formasına təsir göstərməsə də, tarballar üçün .tar və sıxılmış tarballlar üçün .tar.gz və ya .tgz istifadə edilir.

bzip2  sıxılma gzip  əvəzinə -j seçimini -z  seçimi ilə əvəz edilərək.tar.bz2.tbz, vəya .tbz2  fayl uzantısını istifadə edir.

OptionFunction
-jBzip2 əmrini istifadə edərək arxivi sıxın (və ya açın).

Məsələn, School  qovluğunu arxivləşdirmək və sıxışdırmaq üçün:

sysadmin@localhost:~/Documents$ tar -cjf folders.tbz School

9.3.2 Siyahı rejimi

tar -t [-f ARCHIVE] [OPTIONS]

 Bir tar arxivi, sıxılmış və ya sıxılmamış olmasından asılı olmayaraq, -t seçimini istifadə edərək içindəki komponetləri görə bilərsiniz. Növbəti nümunə üç seçimi göstərir:

OptionFunction
-tFaylların siyahısını göstərmə
-jBir bzip2 əmri ilə dekompressiya
-f ARCHIVEVerilən arxiv üzərində işləmə

folders.tbz arxivinin tərkibini göstərmək üçün:

sysadmin@localhost:~/Documents$ tar -tjf folders.tbz
School/
School/Engineering/
School/Engineering/hello.sh
School/Art/
School/Art/linux.txt
School/Math/
School/Math/numbers.txt

Nümunədə, School/ qovluğu fayllara prefiks edilir. tar  əmri sıxılanda avtomatik alt qovluqlara dönəcək və yol məlumatlarını arxivdə saxlayacaq.

sysadmin@localhost:~/Documents$ bunzip2 -c folders.tbz | tar -t
School/
School/Engineering/
School/Engineering/hello.sh
School/Art/
School/Art/linux.txt
School/Math/
School/Math/numbers.txt

Pipelinenin sol tərəfi bunzip2 –c folders.tbz, faylı dekompressiya edir, lakin –c seçimi çıxışı ekrana göndərir. Çıxış tar -t -a yönləndirilir. faylı –f  ilə göstərməsəniz, tar bu vəziyyətdə sıxılmayan fayl kimi standart girişdən oxuyacaqdır.

Qeyd: Yuxarıdakı nümunələr tar komandasının alt kateqoriyaya təkrarlama qabiliyyətini nümayiş etdirmək üçün hazırlanmışdır.

9.3.3 Extract rejimi

tar -x [-f ARCHIVE] [OPTIONS]

Arxiv yaratmaq çox sayda sənədin ötürülməsini asanlaşdırmaq üçün istifadə olunur. Faylları çıxarmazdan əvvəl onları Downloads  qovluğuna köçürün:

sysadmin@localhost:~/Documents$ cd ~
sysadmin@localhost:~$ cp Documents/folders.tbz Downloads/folders.tbz
sysadmin@localhost:~$ cd Downloads

 Sonda arxivi başqa bir qovluğa kopyaladıqdan sonra –x seçimi ilə çıxara bilərsiniz.

OptionFunction
-xFaylların siyahısını göstərmə
-jBir bzip2 əmri ilə dekompressiya
-f ARCHIVEVerilən arxiv üzərində işləmə
sysadmin@localhost:~/Downloads$ tar -xjf folders.tbz
sysadmin@localhost:~/Downloads$ ls -l
total 8
drwx------ 5 sysadmin sysadmin 4096 Dec 20  2017 School
-rw-rw-r-- 1 sysadmin sysadmin  413 Oct 31 18:37 folders.tbz

 Orijinal fayl əlçatmazdır və yeni qovluq yaradılır. Qovluqun içərisində orijinal qovluqlar və sənədlər var.

sysadmin@localhost:~/Downloads$ cd School
sysadmin@localhost:~/Downloads/School$ ls -l
total 12
drwx------ 2 sysadmin sysadmin 4096 Oct 31 17:45 Art
drwx------ 2 sysadmin sysadmin 4096 Oct 31 17:47 Engineering
drwx------ 2 sysadmin sysadmin 4096 Oct 31 17:46 Math

-v bayrağını əlavə etdiyinizdə, emal olunmuş qovluqların geniş bir kopyaslnl alırsınız, bu prosesləri isləməyi asanlaşdırır:

OptionFunction
-vEmal olunmuş qovluqları daha rahat görün

Nüvbəti nümunə –v  seçiminin istifadəsini əks etdirir :

sysadmin@localhost:~/Downloads$ tar -xjvf folders.tbz
School/
School/Engineering/
School/Engineering/hello.sh
School/Art/
School/Art/linux.txt
School/Math/
School/Math/numbers.txt

–f bayrağın sonda saxlanması vacibdir, çünki tar  bu seçimin ardınca gələn hərşeyin birinin adı olduğunu qəbul edir. Növbəti misalda, –f–v bayraqları köçürüldü və bu, tar  əmrinin v adlı bir qovluqda mövcud olmayan əməliyyat kimi interpretasiya olunmasına səbəb olar.

sysadmin@localhost:~/Downloads$ tar -xjfv folders.tbz 
tar (child): v: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now

 Yalnız bəzi faylları arxivdən çıxarmaq istəyirsinizsə, əmrlərin sonuna adlarını əlavə edin, əksinə olaraq onlar arxivdəki adla tam uyğun olmalıdır və ya fayl tam adı istifadə etməlidirlər.

Aşağıdakı nümunə əvvəlki kimi eyni arxivi göstərir, ancaq yalnız School / Art / linux.txt faylını çıxarır. Əmrin nəticəsi (verbose rejimi –v bayrağı ilə istəndiyi kimi) yalnız bir fayl çıxarıldığını göstərir:

sysadmin@localhost:~/Downloads$ tar -xjvf folders.tbz School/Art/linux.txt
School/Art/linux.txt

tar  komandası daha çox xüsusiyyətə malikdir, məsələn, müəyyən fayllar istisna olmaqla, fayl çıxarmaq zamanı fayl yollarından istifadə etmək və ya çıxarılan faylları birbaşa ekrana çıxarmaq. tar -ın dokumentasiyasında geniş məlumatlar var.

Yazı naviqasiyası

Mobil sürümden çık