Linux’ta Tar Dosyasını Açma: İleri Kullanıcılar İçin Kapsamlı Rehber
.tar, .tar.gz, .tar.bz2 ve diğer tarball formatlarını çıkarmak, Linux sistem yönetimi, DevOps boru hatları ve sunucu yönetiminde temel bir beceridir. tar komutu yüzeyde basit görünse de, deneyimli yöneticiler, arşiv işlemleri üzerinde cerrahi hassasiyet elde etmek için gelişmiş bayraklarını, komut dosyası entegrasyonlarını ve kenar durum işlemesini kullanabilir.
Bu kapsamlı kılavuz, temel dekompresyondan koşullu çıkarmaya, bütünlük doğrulamasına, kıyaslamaya ve iş akışlarını otomatikleştirmeye kadar her şeyi kapsar — bir güç kullanıcısının Linux’ta tar konusunda uzmanlaşması gereken her şey.
.tar Dosyası Nedir?
.tar dosyası — kısaca Tape Archive — birden fazla dosya ve dizini tek bir dosyada birleştiren ve şunları koruyan birleştirilmiş bir arşiv formatıdır:
- Dizin yapısı
- Dosya izinleri
- Sahiplik meta verileri
- Zaman damgaları
Varsayılan olarak, .tar arşivleri sıkıştırılmamıştır. Sıkıştırma, .gz, .bz2, .xz veya .zst gibi formatlar kullanılarak ek bir katman olarak uygulanır. Bu modüler tasarım, yöneticilere sıkıştırma hızı ve oranı arasındaki denge üzerinde ince taneli kontrol sağlar.
| Format | Uzantı | Sıkıştırma Aracı |
|---|---|---|
| Sıkıştırma yok | .tar | — |
| Gzip | .tar.gz / .tgz | gzip |
| Bzip2 | .tar.bz2 | bzip2 |
| XZ | .tar.xz | xz |
| Zstandard | .tar.zst | zstd |
Temel Çıkarma Komutları
1. .tar Dosyasını Çıkarma (Sıkıştırma Yok)
tar -xf archive.tar2. .tar.gz veya .tgz Dosyasını Çıkarma
tar -xzf archive.tar.gz3. .tar.bz2 Dosyasını Çıkarma
tar -xjf archive.tar.bz24. .tar.xz Dosyasını Çıkarma
tar -xJf archive.tar.xz5. .tar.zst Dosyasını Çıkarma (Zstandard)
tar --use-compress-program=unzstd -xf archive.tar.zst> Not: Zstandard (.zst) mükemmel bir hız-sıkıştırma oranı sunar ve modern Linux dağıtımları ve konteyner görüntü katmanlarında giderek daha yaygın hale gelmektedir.
Ortak Bayraklar ve İşlevleri
tar bayraklarını anlamak, güvenilir komut dosyaları yazmak ve karmaşık çıkarma senaryolarını işlemek için gereklidir. Aşağıda en önemli seçeneklerin bir referans tablosu bulunmaktadır:
| Bayrak | İşlev |
|---|---|
-x | Dosyaları bir arşivden çıkarma |
-f | Kullanılacak arşiv dosyasını belirtme |
-v | Ayrıntılı çıktı — dosyaları çıkarılırken listeler |
-z | Gzip sıkıştırması üzerinden filtrele |
-j | Bzip2 sıkıştırması üzerinden filtrele |
-J | Xz sıkıştırması üzerinden filtrele |
-C <dir> | Çıkarmadan önce belirtilen dizine geçme |
--strip-components=N | Dosya adlarından N yol bileşenini kaldırma |
--wildcards | Çıkarma sırasında joker karakter deseni eşleştirmesini etkinleştirme |
--no-same-owner | Dosya sahipliğini geri yüklemeyin (root olmayan kullanıcılar için yararlı) |
--overwrite | Mevcut dosyaların üzerine sormadan yazma |
--exclude=PATTERN | Belirtilen deseni eşleşen dosyaları hariç tutma |
--ignore-zeros | Sıfır dolu blokları atlama (bozuk arşivler için yararlı) |
-t | Çıkarmadan arşiv içeriğini listeleme |
Gelişmiş Çıkarma Örnekleri
Belirli Bir Dizine Çıkarma
Çıkarılan içeriği -C bayrağını kullanarak hedef yola yönlendirin:
tar -xf archive.tar.gz -C /opt/myapp> Hedef dizin bu komutu çalıştırmadan önce var olmalıdır. Gerekirse mkdir -p /opt/myapp kullanın.
Arşiv Yapısını Düzleştirme (Üst Düzey Klasörü Kaldırma)
Bir arşiv her şeyi tek bir üst düzey dizinin içine sarıyorsa, bunu kaldırmak için --strip-components kullanın:
tar -xf archive.tar.gz --strip-components=1Bu, özellikle uygulamaları ara bir klasör katmanı olmadan doğrudan hedef dizine dağıtırken yararlıdır.
Yalnızca Belirli Dosyaları Çıkarma
Arşiv içinde göründükleri şekliyle yollarını belirterek bireysel dosyaları çıkarabilirsiniz:
tar -xf archive.tar.gz path/to/file1 path/to/file2Joker Karakter Deseni Eşleşen Dosyaları Çıkarma
Desene göre çıkarmayı filtrelemek için --wildcards kullanın:
tar -xf archive.tar.gz --wildcards '*.conf'Bu, arşivden yalnızca .conf yapılandırma dosyalarını çıkarır — diğer verilere dokunmadan yapılandırmayı seçici olarak geri yüklemek için idealdir.
Çıkarma Sırasında Dosyaları Hariç Tutma
Belirli dosyaları veya desenleri çıkarılmaktan hariç tutun:
tar -xf archive.tar.gz --exclude='*.log'Birden fazla deseni filtrelemek için birden fazla --exclude bayrağını zincirleyebilirsiniz.
Çıkarma Süresini Kıyaslama
Çıkarmanın ne kadar sürdüğünü ölçmek için time yardımcı programını kullanın — sıkıştırma formatlarını karşılaştırırken veya yedekleme iş akışlarını optimize ederken yararlıdır:
time tar -xf archive.tar.gzKenar Durumlarını İşleme
🧱 Bozuk Arşivlerle İlgilenme
Bir arşiv kısmen bozuksa — örneğin, kesintiye uğramış bir indirme veya disk hatası nedeniyle — bozuk sıfır dolu blokları atlamak ve mümkün olduğunca çok veriyi kurtarmak için --ignore-zeros kullanın:
tar -xzf broken.tar.gz --ignore-zerosBu bayrak, tar öğesine beklenmeyen EOF veya sıfır blokları karşılaştığında işlemeye devam etmesini söyler ve veri kurtarmayı en üst düzeye çıkarır.
🔍 Çıkarmadan Önce Arşiv İçeriğini Önizleme
Özellikle güvenilmeyen kaynaklarla veya üretim ortamlarında çalışırken, bir arşivi çıkarmadan önce her zaman inceleyin:
tar -tf archive.tar.gzBu, diske hiçbir şey yazmadan arşiv içindeki tüm dosyaları listeler.
✅ Gzip Sıkıştırılmış Arşivler için Bütünlük Kontrolü
Çıkarmayı denemeden önce .tar.gz arşivinin bozuk olmadığını doğrulayın:
gzip -t archive.tar.gz && echo "Archive integrity OK".tar.xz arşivleri için:
xz --test archive.tar.xz && echo "Archive integrity OK"Bütünlük kontrollerini otomatikleştirilmiş komut dosyalarına dahil etmek, bozuk yedekleme dosyaları nedeniyle başarısız dağıtımları önler.
Sistem Yöneticileri için Komut Dosyası İpuçları
tar öğesini shell komut dosyalarına entegre etmek, Linux sunucularında yedekleme, dağıtım ve geri yükleme iş
