---
title: 'Arşivleme ve Sıkıştırma'
source: 'https://academia.sh/tr/kurslar/linuxa-giris/arsivleme-ve-sikistirma'
course: "Linux'a Giriş"
language: tr
updated: '2026-08-17T18:09:55+00:00'
license: 'CC BY-SA 4.0'
---

# Arşivleme ve Sıkıştırma

Arşivlemenin sıkıştırmadan ayrılması, arşiv biçiminin üstveri taşıması, sıkıştırma algoritmalarının oran–maliyet ödünleşimi ve açmadan önce içeriği doğrulama.

Ağacı tek bir dosyaya paketleme sorusu, önceki dersin bıraktığı yerden başlar ve hemen üç
alt soruya ayrılır: dizin yapısı düz bir bayt dizisine nasıl çevrilir, izinler ile zaman
damgaları korunur mu, sembolik bağlar hedeflerinin içeriğiyle mi yoksa yol dizeleriyle mi
saklanır?

Bu ders önce iki işlemi birbirinden ayırır — çoğu araç ikisini birlikte yaptığı için
karıştırılırlar — sonra arşivlerin nasıl doğrulanacağını kurar.

## İki Ayrı İşlem

**Arşivleme**, birden çok dosyayı üstverileriyle birlikte tek bir bayt dizisine
dönüştürmektir. Boyut küçültmez; hatta biraz büyütür.

**Sıkıştırma**, tek bir bayt dizisini daha kısa bir gösterimle yeniden kodlamaktır. Dosya
sayısını değiştirmez.

Ayrım, Unix geleneğinin "küçük araçlar, tek iş" varsayımının doğrudan bir sonucudur. Her
sıkıştırma algoritması her arşiv biçimiyle birleştirilebilir; iki iş tek programda
birleştirilseydi bu serbestlik kaybolurdu.

Arşiv biçimi, dosya içeriklerinin önüne birer **başlık bloğu** koyar. Başlıkta ad, boyut,
izinler, sahiplik, zaman damgası ve dosya türü bulunur. Bu nedenle arşivden çıkan dosyalar
yalnızca içeriklerini değil üstverilerini de geri kazanır — sıradan bir birleştirme
işleminin yapamayacağı şey budur.

```
$ tar -cf arsiv/veri.tar veri
$ ls -l arsiv
total 56
drwxr-xr-x 2 ogrenci ogrenci  4096 Jul 26 19:04 ham-yedek
-rw-r--r-- 1 ogrenci ogrenci 51200 Jul 26 19:10 veri.tar
```

Seçenekler işlemi belirler: `-c` arşiv oluşturur, `-f` arşiv dosyasının adını verir.
Argüman olarak verilen `veri` dizini özyinelemeli olarak alınır.

Arşiv boyutunun içeriğin toplamından büyük olması beklenen bir sonuçtur. Biçim sabit
uzunlukta bloklar kullanır ve arşivin sonuna dolgu ekler; küçük dosyalarda bu dolgu, veriden
büyük olabilir.

## Arşivin İçini Görmek

Bir arşivi açmadan önce içeriğini listelemek, uygulanması gereken bir alışkanlıktır:

```
$ tar -tvf arsiv/veri.tar
drwxr-xr-x ogrenci/ogrenci   0 2026-07-26 19:08 veri/
drwxr-xr-x ogrenci/ogrenci   0 2026-07-26 19:03 veri/islenmis/
-rw-r--r-- ogrenci/ogrenci  47 2026-07-26 19:03 veri/islenmis/olcum-01.csv
-rw-r--r-- ogrenci/ogrenci  47 2026-07-26 19:03 veri/islenmis/gunluk-ozet.csv
drwxr-xr-x ogrenci/ogrenci   0 2026-07-26 19:10 veri/ham/
-rw-r--r-- ogrenci/ogrenci  47 2026-07-26 19:02 veri/ham/olcum-01.csv
-rw-r--r-- ogrenci/ogrenci  47 2026-07-26 19:03 veri/ham/olcum-02.csv
-rw-r--r-- ogrenci/ogrenci 42019 2026-07-26 19:10 veri/ham/olcum-04.csv
-rw-r--r-- ogrenci/ogrenci    47 2026-07-26 19:03 veri/ham/olcum-03.csv
lrwxrwxrwx ogrenci/ogrenci     0 2026-07-26 19:08 veri/guncel.csv -> ham/olcum-03.csv
```

`-t` listeler, `-v` ayrıntı ekler. Çıktı, önceki derslerde kurulan her şeyi doğrular.
İzinler ve sahiplik korunmuştur. Zaman damgaları korunmuştur. Son satırdaki sembolik bağ,
hedefinin **kopyası olarak değil, bağ olarak** saklanmıştır: tür karakteri `l`, boyut `0`
ve hedef yol dizesi görünüyor.

Sembolik bağların izlenmesi isteniyorsa `-h` seçeneği verilir; bu durumda arşive bağ değil
hedefin içeriği girer ve arşiv büyür. Ağaç bütün olarak taşınıyorsa varsayılan davranış
doğrudur — bağ da hedefi de arşivdedir ve göreli hedef çözümlenmeye devam eder.

Listeleme alışkanlığının nedeni, arşivlerin **kendi dizin yapılarını taşımasıdır**. İyi
biçimlendirilmiş bir arşiv tek bir üst dizin içerir ve açıldığında yalnızca onu oluşturur.
Böyle olmayan bir arşiv, onlarca dosyayı doğrudan bulunulan dizine boşaltır ve aynı adlı
dosyaların üzerine yazar. Açmadan önce listelemek bu durumu önceden gösterir.

## Mutlak Yolların Kaldırılması

Arşive mutlak yolla dosya eklenirse araç baştaki eğik çizgiyi kaldırır ve uyarır:

```
$ tar -cf /tmp/mutlak.tar /home/ogrenci/proje/belge
tar: Removing leading `/' from member names
$ tar -tf /tmp/mutlak.tar
home/ogrenci/proje/belge/
```

Bu davranış bir güvenlik önlemidir. Mutlak yollar korunsaydı, arşiv açan bir kullanıcı
sistem dosyalarının üzerine yazan bir arşiv alabilirdi. Yollar göreli tutulduğunda, arşiv
en fazla açıldığı dizinin altını etkiler.

Uyarının pratik sonucu, arşivlerin ağacın **üstünde durup göreli yolla** oluşturulmasıdır:
`tar -cf arsiv/veri.tar veri` komutu `veri/` ile başlayan yollar üretir ve nereye açılırsa
açılsın orada bir `veri` dizini oluşturur.

## Arşivden Çıkarma

`-x` seçeneği çıkarır, `-C` hedef dizini belirler:

```
$ mkdir -p /tmp/geri
$ tar -xf arsiv/veri.tar -C /tmp/geri
$ find /tmp/geri | sort
/tmp/geri
/tmp/geri/veri
/tmp/geri/veri/guncel.csv
/tmp/geri/veri/ham
/tmp/geri/veri/ham/olcum-01.csv
/tmp/geri/veri/ham/olcum-02.csv
/tmp/geri/veri/ham/olcum-03.csv
/tmp/geri/veri/ham/olcum-04.csv
/tmp/geri/veri/islenmis
/tmp/geri/veri/islenmis/gunluk-ozet.csv
/tmp/geri/veri/islenmis/olcum-01.csv
$ ls -l /tmp/geri/veri/guncel.csv
lrwxrwxrwx 1 ogrenci ogrenci 16 Jul 26 19:08 /tmp/geri/veri/guncel.csv -> ham/olcum-03.csv
```

Ağaç eksiksiz geri gelmiştir ve sembolik bağ bağ olarak yeniden kurulmuştur. Göreli hedefi
sayesinde yeni konumunda da çözümlenir — bağlantılar dersindeki göreli hedef tercihinin
karşılığı burada alınır.

`-C` seçeneği, arşivi bulunulan dizine boşaltma riskini ortadan kaldırır: çıkarma işlemi
her zaman boş veya bu iş için ayrılmış bir dizine yapılır.

## Sıkıştırma Algoritmaları

Sıkıştırma araçları tek bir dosya üzerinde çalışır ve genellikle özgün dosyanın yerine
sıkıştırılmışını koyar; `-k` seçeneği özgün dosyayı korur.

Üç yaygın algoritmanın aynı veri üzerindeki sonucu:

```
$ gzip -k /tmp/o4.csv
$ bzip2 -k /tmp/o4.csv
$ xz -k /tmp/o4.csv
$ ls -l /tmp/o4.csv*
-rw-r--r-- 1 ogrenci ogrenci 42019 Jul 26 19:10 /tmp/o4.csv
-rw-r--r-- 1 ogrenci ogrenci  5579 Jul 26 19:10 /tmp/o4.csv.bz2
-rw-r--r-- 1 ogrenci ogrenci 10776 Jul 26 19:10 /tmp/o4.csv.gz
-rw-r--r-- 1 ogrenci ogrenci  2444 Jul 26 19:10 /tmp/o4.csv.xz
```

Aynı 42019 baytlık ölçüm dosyası sırasıyla 10776, 5579 ve 2444 bayta inmiştir. Sıralama
rastlantı değildir; algoritmaların tasarım tercihlerinden çıkar.

| Araç | Yaklaşım | Ödünleşim |
|---|---|---|
| `gzip` | Sözlük tabanlı kodlama, küçük pencere | En hızlı, en düşük oran, en yaygın destek |
| `bzip2` | Blok sıralama dönüşümü | Orta hız, orta oran |
| `xz` | Sözlük tabanlı kodlama, çok büyük pencere | En yavaş ve en çok bellek, en yüksek oran |

Ortak ilke şudur: daha yüksek sıkıştırma oranı, daha uzun geçmişte örüntü aramayı
gerektirir; bu da daha çok bellek ve daha çok işlem demektir. Algoritmaların hiçbiri
diğerinden "iyi" değildir; farklı noktalarda durur.

Seçim ölçütü, verinin kaç kez sıkıştırılıp kaç kez açılacağıdır. Bir kez üretilip çok kez
indirilen bir arşivde sıkıştırma maliyeti bir kez ödenir ve yüksek oran kazançlıdır. Sık
üretilen günlük yedeklerde ise sıkıştırma süresi her seferinde ödenir.

Sıkıştırılamayan veri de vardır: zaten sıkıştırılmış görüntü ve ses biçimleri, şifrelenmiş
dosyalar ve rastgele veriler. Bunları sıkıştırmak boyutu küçültmez, bir miktar büyütür —
çıktının en az girdi kadar bilgi taşıması gerektiği için.

## Arşiv ve Sıkıştırmayı Birleştirmek

Araç, arşivlemeyi ve sıkıştırmayı tek komutta zincirleyebilir:

```
$ tar -czf arsiv/veri.tar.gz veri
$ tar -cJf arsiv/veri.tar.xz veri
$ ls -l arsiv
total 76
drwxr-xr-x 2 ogrenci ogrenci  4096 Jul 26 19:04 ham-yedek
-rw-r--r-- 1 ogrenci ogrenci 51200 Jul 26 19:10 veri.tar
-rw-r--r-- 1 ogrenci ogrenci 11330 Jul 26 19:10 veri.tar.gz
-rw-r--r-- 1 ogrenci ogrenci  4416 Jul 26 19:10 veri.tar.xz
```

`-z` gzip, `-j` bzip2, `-J` xz uygular. Uzantı geleneği sırayı yansıtır: `.tar.gz`, önce
arşivlenip sonra sıkıştırılmış demektir.

Sıranın önemi vardır. Önce arşivleyip sonra sıkıştırmak, dosyalar arasındaki tekrarların da
bulunmasını sağlar; ölçüm dosyaları aynı başlık satırını ve benzer sayı örüntülerini
paylaştığı için bu kazanç gerçektir. Karşılığında tek bir dosyayı okumak için arşivin
başından itibaren açmak gerekir. Her dosyayı ayrı sıkıştırmak ise rastgele erişimi korur ama
dosyalar arası tekrarı kaçırır.

Arşivlerdeki dolgu, sıkıştırmanın oranını da yanıltıcı biçimde yükseltir: 51200 baytlık
arşivin 4416 bayta inmesinin bir bölümü, verinin değil dolgunun sıkışmasıdır. Sıkıştırma
oranı değerlendirilirken ölçüt, arşivin değil özgün verinin boyutudur.

Arşivler hazır olduğuna göre, önceki derste bırakılan dizin kopyası gereksizdir:

```
$ rm -r arsiv/ham-yedek
$ ls -l arsiv
total 72
-rw-r--r-- 1 ogrenci ogrenci 51200 Jul 26 19:10 veri.tar
-rw-r--r-- 1 ogrenci ogrenci 11330 Jul 26 19:10 veri.tar.gz
-rw-r--r-- 1 ogrenci ogrenci  4416 Jul 26 19:10 veri.tar.xz
```

Arşivin dizin kopyasına üstünlüğü, tek dosya olması değil üstveriyi ve bağ yapısını bir
zaman noktasında dondurmasıdır.

## Taşınabilirlik Notu

Arşiv aracının iki yaygın gerçekleştirimi vardır ve seçenek kümeleri birebir aynı değildir.
Yukarıdaki `-c`, `-t`, `-x`, `-f`, `-v`, `-C` seçenekleri ikisinde de aynı anlamdadır.
Sıkıştırma kısayolları (`-z`, `-j`, `-J`) yaygındır ama standart değildir; taşınabilir
betiklerde sıkıştırma ayrı bir adım olarak boru hattıyla uygulanır.

Eski gerçekleştirimlerde seçenekler tire olmadan da yazılabilir (`tar cf`). Bu biçim
çalışmayı sürdürür; tireli biçim yazılı belgelerde tercih edilir.

## Özet

- Arşivleme çok dosyayı üstverisiyle birlikte tek bayt dizisine çevirir; sıkıştırma tek bir
  bayt dizisini kısaltır. İki işlem ayrıdır ve bağımsız birleştirilebilir.
- Arşiv başlıkları izin, sahiplik, zaman damgası ve dosya türünü taşır; sembolik bağlar
  hedef dizeleriyle saklanır.
- Arşiv açılmadan önce listelenir; mutlak yollar kaldırılır ve çıkarma `-C` ile ayrılmış bir
  dizine yapılır.
- Sıkıştırma oranı arttıkça bellek ve işlem maliyeti artar; seçim, verinin kaç kez
  sıkıştırılıp kaç kez açılacağına bağlıdır.
- Önce arşivleyip sonra sıkıştırmak dosyalar arası tekrarı yakalar ama rastgele erişimi
  kaybettirir.
- Zaten sıkıştırılmış veya rastgele veri sıkıştırılamaz; çıktı bir miktar büyür.

## Sonraki Adım

Arşiv tek dosya hâline geldiğine göre başka bir makineye gönderilebilir. Ancak her seferinde
tüm ağacı arşivleyip göndermek, ağacın küçük bir bölümü değiştiğinde savurgandır. Sonraki
ders uzak kopyalama ile eşitleme araçlarını ele alır: bağlantı nasıl kurulur, hangi araç
yalnızca değişeni gönderir ve yol sonundaki eğik çizgi neden sonucu değiştirir?
