Linux Dosya Arşivleme (tar, gzip)

Linux altında dosya arşivlenmesi ve sıkıştırılması neredeyse belirli ve standartlaşmış birkaç komut ile gerçekleştiriliyor. tar komutu yardımıyla istenilen dosyaları arşivleyebilir, bunların üzerine yenilerini ekleyebilir, istediğiniz zaman da tekrar açıp eski haline getirebilirsiniz. GNU gzip komutu ise dosyaların sıkıştırılması (zip) ve sıkıştırılmış dosyaların açılması (unzip) işlemlerini yapabiliyor. Fazla disk alanınız yoksa bu iki komut her zaman yardımınıza koşacaktır.

Linux Dosya Arşivleme (tar, gzip)Dosya Arşivleme ve Sıkıştırma

        tar (Tape ARchive) programı, bir veya birden fazla dosyayı tek bir forma sokar. Genellikle bir dizin ve bu dizinin altında yer alan tüm alt dizinleri biraraya getirmek için kullanılır. tar, dosyaların üzerinde sıkıştırma işlemini normalde uygulamaz. Fakat tar’ın GNU sürümü (Linux’ta da kullanılan) bu işlemi gzip kullanmadan da yapabiliyor. tar komutuna bir örnek verelim:

tar -cf arsiv.tar tmp/

 

        Bu komut, -c (create archive) parametresi yardımıyla tmp dizini altındaki herşeyi paketleyip arsiv.tar isimli dosyaya yollar. -f parametresi, hangi dosyaya yazılacağını belirtir. İstediğiniz zaman dosyayı tekrar açmak isterseniz:

tar -xf arsiv.tar

 

        komutunu kullanın. -x (extract) parametresi, -f ile belirtilen dosyayı açacaktır.
        -r seçeneği ile daha önce yaratılmış bir arşive dosya eklenebilir. Böylece dosyayı açma ve tekrar arşiv oluşturma işleminden kurtulmuş olursunuz.

tar -rf arsiv.tar ekleme.txt
 
 
 

        Dosyanın içeriğini önceden görebilmek için -t parametresini kullanın ve bu işlemi de alışkanlık haline getirin. Bazı durumlarda arşivlenmiş yazılım, kendine ait bir dizin açmak yerine içerdiği dosyaları bulunduğu yere yazabilir.

tar -tf arsiv.tar

 

        Hangi dosyaların açıldığını ekranda görebilmek için -v parametresini ekleyin:

tar -zcvf tmp.tgz /tmp
 
 

      tar: Removing leading / from absolute path names in the archive.
        tmp/
        tmp/tar-error
        tmp/.X11-unix/
        tmp/rc.inet1.OLD
        tmp/networks.OLD
        tmp/linux/
        tmp/linux/fss.txt
        tmp/lilo.conf
        tmp/PKGTOOL.REMOVED

        Aşağıdaki komut, arşivlenen dosyaları diskete kaydetmeye yarıyor. Bunun için temiz bir disketi yuvasına yerleştirin ve aşağıdaki satırı yazın.

        # tar -cf /dev/fd0 tmp/

        tmp dizini altındaki herşeyi diskete kaydetmiş olduk. Açmak için bilinen yöntemi kullanırız:

        # tar -xf /dev/fd0

    Dosya Sıkıştırma ve Açma

        Dosya sıkıştırma amacıyla sıkça kullanan iki yazılım vardır: gzip ve compress. Her iki yazılım da Slackware Linux dağıtımında bulunuyor. GNU’nun dağıtımı olan gzip, tar ile birlikte kullanılan ve dosya sıkıştırma ve arşivlemede neredeyse standart haline gelmiş bir program. Bir dosyayı sıkıştırmak için parametre girmeden gzip komutunun ardından dosya ismini yazın.

        $ gzip elvis
        $ ls -al
        elvis.gz

        gzip ile sıkıştırılmış dosyaların sonu .gz ile biter. Bunları açmak için gunzip komutunu kullanın:

        $ gunzip elvis.gz

        compress ve uncompress de sırayla bir dosyayı sıkıştırmak ve açmak için kullanılır. Aslında Linux’ta uncompress adında bir yazılım yoktur, bu dosya ismi compress dosyasına bağlantılıdır. compress ile sıkıştırılan dosyaların sonu .Z ile biter.

        $ ls -al web.html
        -rw-r–r–   1 gorkem   users       41450 Jan 27 13:40 web.html
        $ compress web.html
        $ ls -al web.html.Z
        -rw-r–r–   1 gorkem   users       18906 Jan 27 13:40 web.html.Z

        Yukarıdaki web.html dosyasını sıkıştırdığımızda dosyanın boyutu 41450 bayttan 18906 bayta indi. Açmak için:

        $ uncompress web.html.Z

        Bir dosyanın uzantısından ne tür bir dosya olduğunu anlayamazsanız file komutu imdadınıza koşar. Linux’ta belirli uzantılı dosyaların başı bilinen bir harf veya harf grubu ile başlar. file komutu dosyanın başındaki karakterleri kontrol ederek ve bunları bir listeyle (/etc/magic) karşılaştırarak dosyanın ne tür olduğunu söyler.

        # file tmp.gz
        tmp.tgz: gzip compressed data – deflate method , last modified: Sat Feb 15 08:21:50 1997 os: Unix
        # file tmp.tar.Z
        tmp.tar.Z: compressed data 16 bits

    Birlikte Kullanım

        ftp adreslerinde Linux için yeralan yazılımlar genellikle tar ve gzip, nadiren de tar ve compress ile sıkıştırılıp arşivelenerek saklanırlar. Çünkü tar komutu tek başına arşivi sıkıştırmaz, bu işlem için gzip veya compress kullanılır. Bunların açılabilmesi için tar komutu ve birkaç parametre yeterli olur.

        $ ls
        netscape-4.0.linux-elf.tar.gz

        Yukarıdaki dosya önce tar ile arşivlenmiş, ardından gzip ile sıkıştırılmış. Tek adımda bu iki dosyayı açmak için tar dosyasına x ve f parametrelerinin dışında z parametresini de ekleyin:

        $ tar -zxf netscape-4.0.linux-elf.tar.gz
        $ ls
        netscape-4.0.linux-elf

        Eğer dosya sıkıştırılırken compress komutu kullanılmışsa z yerine Z parametresini yazın.

        $ ls
        folder.tar.Z
        $ tar -Zxf folder.tar.Z
        $ ls
        folder

        Benzer şekile, bir dosyayı aynı anda hem tar ile arşivlemek, hem de sıkıştırmak istersek c ve f parametreleri dışında compress ile Z, gzip ile z parametrelerini girmek yeterlidir. Aşağıda sırayla gn-gopher dizisinin önce tar ve gzip ile, ardından tar ve compress ile arşivlenmesi görülüyor.

        $ ls
        gn-gopher/
        $ tar -zcf gopher.tgz gn-gopher/
        $ tar -Zcf gopher.tar.Z gn-gopher/

 

    Linux altında dosya arşivlenmesi ve sıkıştırılması neredeyse belirli ve standartlaşmış birkaç komut ile gerçekleştiriliyor. tar komutu yardımıyla istenilen dosyaları arşivleyebilir, bunların üzerine yenilerini ekleyebilir, istediğiniz zaman da tekrar açıp eski haline getirebilirsiniz. GNU gzip komutu ise dosyaların sıkıştırılması (zip) ve sıkıştırılmış dosyaların açılması (unzip) işlemlerini yapabiliyor. Fazla disk alanınız yoksa bu iki komut her zaman yardımınıza koşacaktır.
    Dosya Arşivleme

        tar (Tape ARchive) programı, bir veya birden fazla dosyayı tek bir forma sokar. Genellikle bir dizin ve bu dizinin altında yer alan tüm alt dizinleri biraraya getirmek için kullanılır. tar, dosyaların üzerinde sıkıştırma işlemini normalde uygulamaz. Fakat tar’ın GNU sürümü (Linux’ta da kullanılan) bu işlemi gzip kullanmadan da yapabiliyor.
        tar komutuna bir örnek verelim:

        $ tar -cf arsiv.tar tmp/

        Bu komut, -c (create archive) parametresi yardımıyla tmp dizini altındaki herşeyi paketleyip arsiv.tar isimli dosyaya yollar. -f parametresi, hangi dosyaya yazılacağını belirtir. İstediğiniz zaman dosyayı tekrar açmak isterseniz:

        $ tar -xf arsiv.tar

        komutunu kullanın. -x (extract) parametresi, -f ile belirtilen dosyayı açacaktır.
        -rseçeneği ile daha önce yaratılmış bir arşive dosya eklenebilir. Böylece dosyayı açma ve tekrar arşiv oluşturma işleminden kurtulmuş olursunuz.

        $ tar -rf arsiv.tar ekleme.txt

        Dosyanın içeriğini önceden görebilmek için -t parametresini kullanın ve bu işlemi de alışkanlık haline getirin. Bazı durumlarda arşivlenmiş yazılım, kendine ait bir dizin açmak yerine içerdiği dosyaları bulunduğu yere yazabilir.

        tar -tf arsiv.tar

        Hangi dosyaların açıldığını ekranda görebilmek için -v parametresini ekleyin:

        # tar -zcvf tmp.tgz /tmp
        tar: Removing leading / from absolute path names in the archive.
        tmp/
        tmp/tar-error
        tmp/.X11-unix/
        tmp/rc.inet1.OLD
        tmp/networks.OLD
        tmp/linux/
        tmp/linux/fss.txt
        tmp/lilo.conf
        tmp/PKGTOOL.REMOVED

        Aşağıdaki komut, arşivlenen dosyaları diskete kaydetmeye yarıyor. Bunun için temiz bir disketi yuvasına yerleştirin ve aşağıdaki satırı yazın.

        # tar -cf /dev/fd0 tmp/

        tmp dizini altındaki herşeyi diskete kaydetmiş olduk. Açmak için bilinen yöntemi kullanırız:

        # tar -xf /dev/fd0

    Dosya Sıkıştırma ve Açma

        Dosya sıkıştırma amacıyla sıkça kullanan iki yazılım vardır: gzip ve compress. Her iki yazılım da Slackware Linux dağıtımında bulunuyor. GNU’nun dağıtımı olan gzip, tar ile birlikte kullanılan ve dosya sıkıştırma ve arşivlemede neredeyse standart haline gelmiş bir program. Bir dosyayı sıkıştırmak için parametre girmeden gzip komutunun ardından dosya ismini yazın.

        $ gzip elvis
        $ ls -al
        elvis.gz

        gzip ile sıkıştırılmış dosyaların sonu .gz ile biter. Bunları açmak için gunzip komutunu kullanın:

        $ gunzip elvis.gz

        compress ve uncompress de sırayla bir dosyayı sıkıştırmak ve açmak için kullanılır. Aslında Linux’ta uncompress adında bir yazılım yoktur, bu dosya ismi compress dosyasına bağlantılıdır. compress ile sıkıştırılan dosyaların sonu .Z ile biter.

        $ ls -al web.html
        -rw-r–r–   1 gorkem   users       41450 Jan 27 13:40 web.html
        $ compress web.html
        $ ls -al web.html.Z
        -rw-r–r–   1 gorkem   users       18906 Jan 27 13:40 web.html.Z

        Yukarıdaki web.html dosyasını sıkıştırdığımızda dosyanın boyutu 41450 bayttan 18906 bayta indi. Açmak için:

        $ uncompress web.html.Z

        Bir dosyanın uzantısından ne tür bir dosya olduğunu anlayamazsanız file komutu imdadınıza koşar. Linux’ta belirli uzantılı dosyaların başı bilinen bir harf veya harf grubu ile başlar. file komutu dosyanın başındaki karakterleri kontrol ederek ve bunları bir listeyle (/etc/magic) karşılaştırarak dosyanın ne tür olduğunu söyler.

        # file tmp.gz
        tmp.tgz: gzip compressed data – deflate method , last modified: Sat Feb 15 08:21:50 1997 os: Unix
        # file tmp.tar.Z
        tmp.tar.Z: compressed data 16 bits

    Birlikte Kullanım

        ftp adreslerinde Linux için yeralan yazılımlar genellikle tar ve gzip, nadiren de tar ve compress ile sıkıştırılıp arşivelenerek saklanırlar. Çünkü tar komutu tek başına arşivi sıkıştırmaz, bu işlem için gzip veya compress kullanılır. Bunların açılabilmesi için tar komutu ve birkaç parametre yeterli olur.

$ ls
        netscape-4.0.linux-elf.tar.gz

          Yukarıdaki dosya önce tar ile arşivlenmiş, ardından gzip ile sıkıştırılmış. Tek adımda bu iki dosyayı açmak için tar dosyasına x ve f parametrelerinin dışında z parametresini de ekleyin:

$ tar -zxf netscape-4.0.linux-elf.tar.gz
$ ls
        netscape-4.0.linux-elf

 

        Eğer dosya sıkıştırılırken compress komutu kullanılmışsa z yerine Z parametresini yazın.

$ ls
       folder.tar.Z
$ tar -Zxf folder.tar.Z
$ ls
       folder

 

        Benzer şekile, bir dosyayı aynı anda hem tar ile arşivlemek, hem de sıkıştırmak istersek c ve f parametreleri dışında compress ile Z, gzip ile z parametrelerini girmek yeterlidir. Aşağıda sırayla gn-gopher dizisinin önce tar ve gzip ile, ardından tar ve compress ile arşivlenmesi görülüyor.

$ ls
  gn-gopher/
$ tar -zcf gopher.tgz gn-gopher/
$ tar -Zcf gopher.tar.Z gn-gopher/

 

Linux'ta bir dizinin tamamını veya tek bir dosyayı sıkıştırmak için aşağıdaki komutu kullanın. Ayrıca belirttiğiniz bir dizinin içindeki diğer tüm dizinleri de sıkıştıracaktır — başka bir deyişle, yinelemeli olarak çalışır.  

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

İşte bu anahtarların aslında ne anlama geldiği:

  • -c: Bir arşiv oluştur .
  • -z: Arşivi g -z -ip ile sıkıştırır.
  • -v: Arşivi oluştururken terminalde ilerlemeyi görüntüler, " v erbose" modu olarak da bilinir. v bu komutlarda her zaman isteğe bağlıdır, ancak yararlıdır.
  • -f: Arşivin dosya adını belirtmenize olanak tanır .

Diyelim ki geçerli dizinde "stuff" adında bir dizininiz var ve bunu archive.tar.gz adlı bir dosyaya kaydetmek istiyorsunuz. Aşağıdaki komutu çalıştırırsınız:  

tar -czvf archive.tar.gz stuff
   

Veya, mevcut sistemde /usr/local/something dizininde bir dizin olduğunu ve bunu archive.tar.gz adlı bir dosyaya sıkıştırmak istediğinizi varsayalım. Aşağıdaki komutu çalıştırırsınız:

tar -czvf archive.tar.gz /usr/local/something
   

Linux Dosya Arşivleme (tar, gzip)

 

Birden Fazla Dizini veya Dosyayı Aynı Anda Sıkıştırın

tar sıklıkla tek bir dizini sıkıştırmak için kullanılsa da, birden fazla dizini, birden fazla bireysel dosyayı veya her ikisini de sıkıştırmak için de kullanabilirsiniz . Tek bir tane yerine sadece bir dosya veya dizin listesi sağlayın. Örneğin, /home/ubuntu/Downloads dizinini, /usr/local/stuff dizinini ve /home/ubuntu/Documents/notes.txt dosyasını sıkıştırmak istediğinizi varsayalım. Sadece şu komutu çalıştırırsınız:

tar -czvf archive.tar.gz /home/ubuntu/Downloads /usr/local/stuff /home/ubuntu/Documents/notes.txt
 
 
 

Yedeklemek istediğiniz dizin veya dosya sayısını belirtmeniz yeterli.

 

Linux Dosya Arşivleme (tar, gzip)

Dizinleri ve Dosyaları Hariç Tut

Bazı durumlarda, tüm bir dizini sıkıştırmak isteyebilirsiniz, ancak belirli dosyaları ve dizinleri dahil etmeyebilirsiniz. Bunu, excludehariç tutmak istediğiniz her dizin veya dosya için bir anahtar ekleyerek yapabilirsiniz.

Örneğin, /home/ubuntu'yu sıkıştırmak istediğinizi varsayalım, ancak /home/ubuntu/Downloads ve /home/ubuntu/.cache dizinlerini sıkıştırmak istemiyorsunuz. Bunu şu şekilde yaparsınız: 

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

Anahtar exclude çok güçlüdür. Dizin ve dosya adlarını almaz — aslında desenleri kabul eder. Bununla yapabileceğiniz çok daha fazla şey var. Örneğin, aşağıdaki komutla tüm bir dizini arşivleyebilir ve tüm .mp4 dosyalarını hariç tutabilirsiniz:

tar -czvf archive.tar.gz /home/ubuntu exclude=*.mp4

 

Linux Dosya Arşivleme (tar, gzip)

Bunun yerine bzip2 Sıkıştırmayı kullanın

Gzip sıkıştırması en sık .tar.gz veya .tgz dosyaları oluşturmak için kullanılırken, tar ayrıca bzip2 sıkıştırmasını da destekler. Bu, genellikle .tar.bz2, .tar.bz veya .tbz dosyaları olarak adlandırılan bzip2 sıkıştırılmış dosyalar oluşturmanıza olanak tanır. Bunu yapmak için, buradaki komutlarda gzip için -z'yi bzip2 için -j ile değiştirmeniz yeterlidir.

Gzip daha hızlıdır, ancak genellikle biraz daha az sıkıştırır, böylece biraz daha büyük bir dosya elde edersiniz. Bzip2 daha yavaştır, ancak biraz daha fazla sıkıştırır, böylece biraz daha küçük bir dosya elde edersiniz. Gzip ayrıca daha yaygındır, bazı basitleştirilmiş Linux sistemleri varsayılan olarak gzip desteği içerir, ancak bzip2 desteği içermez. Ancak genel olarak gzip ve bzip2 pratik olarak aynı şeydir ve ikisi de benzer şekilde çalışır.

Örneğin, stuff dizinini sıkıştırmak için sağladığımız ilk örnek yerine, aşağıdaki komutu çalıştırabilirsiniz:

tar -cjvf archive.tar.bz2 stuff
   

 

Linux Dosya Arşivleme (tar, gzip)

Bir Tar Dosyasını Çıkarın

Bir arşiviniz olduğunda, onu tar komutuyla çıkarabilirsiniz. Aşağıdaki komut archive.tar.gz'nin içeriğini geçerli dizine çıkaracaktır.

tar -xzvf arşiv.tar.gz
   

Yukarıda kullandığımız arşiv oluşturma komutuyla aynıdır, ancak -xanahtar anahtarı değiştirir . Bu, bir tane oluşturmak yerine bir arşivi çıkarmak istediğinizi-c belirtir .

Arşivin içeriğini belirli bir dizine çıkarmak isteyebilirsiniz. Bunu -Ckomutun sonuna anahtarı ekleyerek yapabilirsiniz. Örneğin, aşağıdaki komut archive.tar.gz dosyasının içeriğini /tmp dizinine çıkaracaktır.

tar -xzvf arşiv.tar.gz -C /tmp
   

Eğer dosya bzip2 ile sıkıştırılmış bir dosya ise yukarıdaki komutlardaki "z" harfini "j" harfi ile değiştirin.


Linux Dosya Arşivleme (tar, gzip)

Bu, tar komutunun mümkün olan en basit kullanımıdır. Komut çok sayıda ek seçenek içerir, bu yüzden hepsini burada listeleyemeyiz. Daha fazla bilgi için. tar komutunun ayrıntılı bilgi sayfasını görüntülemek için kabukta info tar komutunu çalıştırın. İşiniz bittiğinde bilgi sayfasından çıkmak için q tuşuna basın . Ayrıca tar'ın kılavuzunu çevrimiçi okuyabilirsiniz .

Grafiksel bir Linux masaüstü kullanıyorsanız, .tar dosyaları oluşturmak veya çıkarmak için masaüstünüze dahil olan dosya sıkıştırma yardımcı programını veya dosya yöneticisini de kullanabilirsiniz. Windows'ta, ücretsiz 7-Zip yardımcı programıyla .tar arşivlerini çıkarabilir ve oluşturabilirsiniz.

Kaynak

 

Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...