1. #!trpst#trp-gettext data-...
  2. #!trpst#trp-gettext data-...
  3. Linux
  4. Terminal
  5. tar ve gzip: Arşivleme ve Sıkıştırma İşlemleri

tar ve gzip: Arşivleme ve Sıkıştırma İşlemleri

Print

Linux sistemlerinde veri yedekleme, dağıtım paketleri hazırlama veya birden fazla dosyayı tek bir arşivde toplayıp disk alanından tasarruf etme aşamalarında Linux tar ve gzip araçları standart çözümdür. Linux dünyasında sıklıkla bir arada kullanılan bu iki terim aslında iki farklı görevi temsil eder: Arşivleme ve Sıkıştırma.

  • Arşivleme (tar – Tape Archive): Yüzlerce dosya ve dizini, izin ve zaman damgalarını koruyarak tek bir büyük dosya (.tar) haline getirir ancak boyutunu küçültmez.
  • Sıkıştırma (gzip, bzip2, xz): Tek bir dosyanın boyutunu matematiksel algoritmalarla sıkıştırır (.gz).

Bu iki işlem birleştiğinde ortaya Linux ekosisteminin simgesi olan .tar.gz (veya .tgz) dosyaları çıkar. Bu rehberde tar ve gzip komutlarını günlük hayatta işinizi kolaylaştıracak tüm varyasyonlarıyla ele alıyoruz.

Temel tar Parametreleri Nelerdir?

tar komutunu ezberlemeden anlamanın en kolay yolu temel işlem bayraklarını bilmektir:

  • -c (create): Yeni bir arşiv dosyası oluşturur.
  • -x (extract): Var olan bir arşivi dışarı çıkartır (açar).
  • -v (verbose): İşlem sırasında işlenen dosyaların adlarını ekrana yansıtır.
  • -f (file): Üzerinde çalışılacak arşiv dosyasının adını belirtir (mutlaka parametre listesinin en sonunda yer almalıdır).
  • -z (gzip): Arşivi gzip algoritması ile sıkıştırır/açar (.tar.gz).
  • -j (bzip2): Arşivi bzip2 algoritması ile sıkıştırır/açar (.tar.bz2).
  • -J (xz): Arşivi yüksek sıkıştırma sağlayan xz ile işler (.tar.xz).
  • -t (list): Arşivi diske açmadan içindeki dosyaları listeler.

1. Arşiv Oluşturma (.tar.gz)

Belirli bir klasörü (örneğin /home/ahc/proje) hem paketlemek hem de gzip ile sıkıştırmak için -czvf kombinasyonu kullanılır:

tar -czvf proje_yedek.tar.gz /home/ahc/proje

Eğer sadece geçerli dizindeki belirli uzantılara sahip dosyaları paketlemek isterseniz:

tar -czvf kodlar.tar.gz *.cpp *.h

2. Arşiv Dosyasını Açmak (Extract)

Elinizdeki bir .tar.gz dosyasını mevcut dizine açmak için -xzvf kullanılır:

tar -xzvf proje_yedek.tar.gz

Arşivi Farklı Bir Hedef Dizine Açmak (-C)

Arşivi mevcut dizin yerine başka bir klasöre (örn: /var/www/html) açmak için -C (directory) seçeneği eklenir:

tar -xzvf site_yedek.tar.gz -C /var/www/html

3. Arşivi Açmadan İçeriğini Listelemek (-t)

Bir arşivi indirdiğinizde içinde hangi dosyaların olduğunu, dosyaları diske çıkartıp ortamı kirletmeden görmek için -tzvf parametresi kullanılır:

tar -tzvf proje_yedek.tar.gz

4. Belirli Dosyaları Hariç Tutmak (–exclude)

Yedekleme alırken node_modules, build, loglar veya .git gibi gereksiz büyük klasörleri arşive dahil etmemek için --exclude seçeneği kullanılır:

tar --exclude='proje/build' --exclude='proje/.git' -czvf temiz_proje.tar.gz /home/ahc/proje

İpucu: --exclude parametresini her zaman kaynak klasörün belirtilmesinden önce yazmak en güvenli yoldur.


5. Bağımsız gzip ve gunzip Kullanımı

gzip komutu tekil dosyaları hızla sıkıştırmak için tek başına da kullanılabilir.

# 1. Tek bir log dosyasını sıkıştırmak (orijinal dosya silinir, yerine .gz gelir):
gzip access.log
# Çıktı: access.log.gz

# 2. Orijinal dosyayı koruyarak sıkıştırmak (-k: keep):
gzip -k access.log

# 3. Sıkıştırılmış .gz dosyasını açmak:
gunzip access.log.gz
# veya:
gzip -d access.log.gz

Sıkıştırma Algoritmaları Karşılaştırması

Linux’ta ihtiyaca göre farklı algoritmalar tercih edilebilir:

AlgoritmaBayrakUzantıSıkıştırma HızıSıkıştırma OranıKullanım Amacı
gzip-z.tar.gzÇok HızlıİyiGünlük yedekleme, standart web paketleri
bzip2-j.tar.bz2OrtaDaha YüksekOrta büyüklükteki paketler
xz-J.tar.xzYavaşEn YüksekLinux çekirdeği (Kernel), resmi ISO paketleri

Diğer Terminal Araçlarıyla Otomasyon

Arşivleme işlemi genellikle diğer komutlarla birleştirilir. Örneğin, find komutu ile son 7 gün içinde değişmiş dosyaları bulup doğrudan tar‘a aktarabilirsiniz:

find /var/log -name "*.log" -mtime -7 | tar -czvf son_hafta_loglari.tar.gz -T -

Detaylı POSIX standartları ve gelişmiş arşiv parametreleri için resmi GNU Tar Kullanım Kılavuzu sayfasına göz atabilirsiniz.

Tags , , , , , ,

How can we help?