4.01.2023

Komut satırından sıkıştırma ve açma

 Eskiden sadece tar vardı. Bir klasörü tar ile sıkıştırmak için (tar paketi ile gelen)

tar -czvf compressed.tar.gz /home/user/dir1

Burada

    -c : Create (oluştur)

    -z :  zip (sıkıştır)

    -v : verbose (dosya ayrıntılarını görüntüle)

    -f : Filename (sıkıştırılmış dosya adını belirt)

Birden fazla klasör boşluk bırakarak ard arda yazılabilir.

Hariç tutulmak istenen klasör veya dosyalar (* wildcard karakteri kullanılarak) --exclude parametresiyle verilebilir.

tar -czvf compressed.tar.gz /home/usr/dir1 --exclude=/home/user/dosya1.txt --exclude=*.mp4 --exclude /home/user/Download

Bu örneklerdeki -z parametresi gzip sıkıştırma yöntemini kullanıyordu. Yeni bir sıkıştırma yöntemi olan bzip2'yi kullanmak (daha fazla sıkıştırma oranı için) -z'yi -j ile değiştirmek gerek. Örneğin

tar -cjvf compressed.tar.bzip2 /home/user/dir1

Sıkıştırılmış dosyayı açmak (ayıklamak/çıkarmak) için ise -c anahtarını -x (eXtract) ile değiştirmek gerek:

tar -xzvf compressed.tar.gz

Bu komut mevcut klasörün içine çıkartır. Başka bir klasöre çıkartmak için -C (büyük C) anahtarı kullanılır:

tar -xzvf compressed.tar.gz -C /tmp

tar komutundan başka bir de zip komutu var. Bu komut ile tek bir dosyayı sıkıştırma yapmak için (zip paketi ile gelen)

zip compressed.zip /home/user/file1.txt

bir klasörü, altındaki tüm içerik ile birlikte sıkıştırmak için ise

zip -r -q -9 compressed.zip /home/user/Documents/

kullanılabilir. Burada

    -r : Recurse (alt klasörleri de dahil et)

    -q : Quiet (sıkıştırılan her içeriği yazma)

    -9 : En yüksek sıkıştırma oranını kullan (-0 en düşük, -9 en yüksek sıkıştırma oranı)

Sıkıştırılan dosyaya bir parola vermek için -e anahtarı kullanılabilir. Bu anahtardan sonra parola sorulur.

zip ile sıkıştırılmış dosyaları açmak için ise unzip komutunu kullanmak gerek (unzip paketi ile gelen):

    unzip compressed.zip

Burada kullanılabilecek bazı anahtarlar şöyle:

    -q : Quiet (ayrıntıları yazma)

    -d <klasör> : çıkarılacak konumu belirt

    -P <parola> : Büyük 'P' harfi ile parola korumalı dosya için parola belirt (DİKKAT: Komut geçmişinde görüntülenecek!)

    -x <*>    : eXlude (hariç tut)

    -l : Çıkarmadan sadece zip dosyasının içeriğindeki dosyaları görüntüle

Bazı bonus komutlar şöyle (bunlar da zip paketi ile gelir):

zipcloak compressed.zip    # varolan bir dosyayı parola korumalı yap

zipdetail compressed.zip  # sıkıştırılmış dosya ayrıntılarını görüntüle

zipinfo compressed.zip  # sıkıştırılmış dosya ayrıntılarını görüntüle

zipgrep kelime compressed.zip # sıkışmış dosyaların içeriğinde anahtar kelime araması yap

zipsplit -n 1024000 compressed.zip # sıkıştırılmış dosyayı 102400 byte (1 MB) bölümlere böl

Sıkıştırılmış dosyaların içinde işlem yapmayı sağlayan şu komutlar da var:

tar -tvf compressed.gz    # gz uzantılı dosyanın içindeki dosyaları görüntüle
gzip -l compressed.gz # gz uzantılı dosyanın içindeki dosyaları görüntüle
tar -tJf file.tar.xz # xz uzantılı dosyanın içindeki dosyaları görüntüle
7z l compressed.7z # 7z uzantılı dosyanın içindeki dosyaları görüntüle

gzip paketi ile gelen aşağıdaki komutlar da var:

zcat compressed.gz        # cat komutunun sıkıştırılmış dosyalar için olanı
zgrep kelime dosya.gz # grep komutunun sıkıştırılmış dosyalar için olanı

Son zamanlarda daha da fazla sıkıştırma oranı veren 7zip de kullanılabilir. Windows için yüklenen 7-zip paketinde de 7z komutu aynı işlemleri yapabilir. Bir klasörü 7zip ile sıkıştırmak için:

7z a compressed.7z /home/user/log_file

çıkartmak için de

7z e compressed.7z -o /home/user/

Tabi Windows'da powershell ile gelen Compress-Archive ve Expand-Archive komutları da kullanılabilir:

Compress-Archive -Path log_file -DestinationPath compressed.zip

Açmak için de

Expand-Archive -Path D:\archive\compressed.zip -DestinationPath C:\Users\fethi\

kullanılabilir.

Hiç yorum yok: