Tüm barındırma hizmetlerinde 15% tasarruf edin

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın: Skills Başlayın
Bölüm
Linux

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 gelişmiş bayraklarını, komut dosyası entegrasyonlarını ve kenar durum işlemesini kullanarak arşiv işlemleri üzerinde cerrahi hassasiyet elde edebilir.

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ı için gereken her şey.

.tar Dosyası Nedir?

Bir .tar dosyası — kısaca Tape Archive — birden fazla dosya ve dizini tek bir dosyada birleştiren ve şunları koruyan konsolide 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 dengeyi kontrol etme konusunda ince taneli kontrol sağlar.

FormatUzantıSıkıştırma Aracı
Sıkıştırma yok.tar
Gzip.tar.gz / .tgzgzip
Bzip2.tar.bz2bzip2
XZ.tar.xzxz
Zstandard.tar.zstzstd

Temel Çıkarma Komutları

1. .tar Dosyasını Çıkart (Sıkıştırma Yok)

tar -xf archive.tar

2. .tar.gz veya .tgz Dosyasını Çıkart

tar -xzf archive.tar.gz

3. .tar.bz2 Dosyasını Çıkart

tar -xjf archive.tar.bz2

4. .tar.xz Dosyasını Çıkart

tar -xJf archive.tar.xz

5. .tar.zst Dosyasını Çıkart (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.

Yaygın 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
-xArşivden dosyaları çıkart
-fKullanılacak arşiv dosyasını belirt
-vAyrıntılı çıktı — dosyaları çıkarılırken listele
-zgzip sıkıştırması aracılığıyla filtrele
-jbzip2 sıkıştırması aracılığıyla filtrele
-Jxz sıkıştırması aracılığıyla filtrele
-C <dir>Çıkarmadan önce belirtilen dizine geç
--strip-components=NDosya adlarından öncü N yol bileşenlerini kaldır
--wildcardsÇıkarma sırasında joker karakter deseni eşleştirmesini etkinleştir
--no-same-ownerDosya sahipliğini geri yükleme (root olmayan kullanıcılar için yararlı)
--overwriteMevcut dosyaların üzerine sormadan yaz
--exclude=PATTERNBelirtilen deseni eşleşen dosyaları hariç tut
--ignore-zerosSıfırla doldurulmuş blokları atla (bozuk arşivler için yararlı)
-tÇıkarmadan arşiv içeriğini listele

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ştirin (Üst Düzey Klasörü Kaldırın)

Bir arşiv her şeyi tek bir üst düzey dizinin içine sarıyorsa, onu kaldırmak için --strip-components kullanın:

tar -xf archive.tar.gz --strip-components=1

Bu, uygulamaları ara klasör katmanı olmadan doğrudan hedef dizine dağıtırken özellikle yararlıdır.

Yalnızca Belirli Dosyaları Çıkarma

Arşiv içinde göründükleri şekilde yollarını belirterek bireysel dosyaları çıkarabilirsiniz:

tar -xf archive.tar.gz path/to/file1 path/to/file2

Joker Karakter Deseniyle Eşleşen Dosyaları Çıkarma

Çıkarmayı desene göre 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ıyasla

Çıkarmanın ne kadar sürdüğünü ölçmek için time yardımcı programını kullanın — sıkıştırma biçimlerini karşılaştırırken veya yedekleme iş akışlarını optimize ederken yararlıdır:

time tar -xf archive.tar.gz

Edge Cases’i Yönetme

🧱 Bozuk Arşivlerle Başa Çıkma

Bir arşiv kısmen bozuksa — örneğin, kesintiye uğrayan bir indirme veya disk hatası nedeniyle — bozuk sıfırla doldurulmuş blokları atlamak ve mümkün olduğunca çok veriyi kurtarmak için --ignore-zeros kullanın:

tar -xzf broken.tar.gz --ignore-zeros

Bu bayrak, tar öğesine beklenmeyen EOF veya sıfır bloklar ile karşılaştığında işlemeye devam etmesini söyleyerek veri kurtarmayı en üst düzeye çıkarır.

🔍 Arşiv İçeriğini Çıkarmadan Önce Önizleme

Özellikle güvenilmeyen kaynaklar veya üretim ortamlarıyla çalışırken, bir arşivi çıkarmadan önce her zaman inceleyin:

tar -tf archive.tar.gz

Bu, 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 bir .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 otomatik komut dosyalarına dahil etmek, bozuk yedekleme dosyaları nedeniyle başarısız dağıtımları önler.

Sistem Yöneticileri için Scripting İpuçları

tar öğesini shell scriptlerine entegre etmek, Linux sunucularında yedekleme, dağıtım ve geri yükleme iş akışlarını otomatikleştirmenin en güçlü yollarından biridir.

Otomatik Yedekleme Scripti

#!/bin/bash
TARGET_DIR="/var/www"
ARCHIVE="/backups/site-$(date +%F).tar.gz"

tar -czf "$ARCHIVE" -C "$TARGET_DIR" . && echo "Backup saved to $ARCHIVE"

Bu script, web kök dizininizin tarih damgalı sıkıştırılmış bir arşivini oluşturur. Bunu tamamen otomatik günlük yedeklemeler için bir cron işiyle eşleştirin.

Otomatik Açma ve Dağıtım Scripti

#!/bin/bash
SRC="$1"
DEST="$2"

mkdir -p "$DEST"
tar -xzf "$SRC" -C "$DEST" --strip-components=1

Arşiv yolunu ve hedef dizini argüman olarak geçirin. --strip-components=1 bayrağı, üst düzey dizinin kaldırılmasını sağlayarak dosyaları doğrudan $DEST içine yerleştirir.

Büyük Arşivler için Paralel Çıkarma

Çok çekirdekli sunucularda, .tar.gz arşivlerinin çıkarılmasını pigz (paralel gzip) kullanarak hızlandırabilirsiniz:

tar -I pigz -xf large-archive.tar.gz -C /destination

Bu, paralel dekompresyonun dağıtım sürelerini önemli ölçüde azaltabileceği birden fazla CPU çekirdeğine sahip VPS Hosting veya Dedicated Servers üzerinde özellikle değerlidir.

Sunucu Ortamlarında Pratik Kullanım Örnekleri

tar hakkında derinlemesine bilgi sahibi olmak, gerçek dünya sunucu senaryolarında özellikle önemli hale gelir:

  • Web uygulaması dağıtımları — Release tarball dosyalarını doğrudan Paylaşımlı Web Hosting veya VPS ortamınızdaki web kök dizinlerine çıkartın.
  • Veritabanı yedekleri — Veritabanı dump dosyalarını verimli site dışı depolama için arşivleyin ve sıkıştırın.
  • SSL sertifikası yönetimiSSL Sertifikaları ve ilişkili anahtar dosyalarını sunucular arasında güvenli bir şekilde paketleyin ve aktarın.
  • Yapılandırma yönetimi — Sistem yükseltmelerinden önce /etc dizinlerini arşivleyin ve hızlı geri alma işlemlerini etkinleştirin.
  • Alan adı ve web varlığı taşıması — Konaklar arasında taşırken veya yeni bir Alan Adı Kaydı kaydettirirken tüm site dizinlerini paketleyin.

Büyük makine öğrenmesi veri setlerini veya model dosyalarını sıkıştırmak gibi kaynak yoğun iş yükleri için, yüksek verimli I/O ve işleme gücünün arşiv işlemlerini önemli ölçüde hızlandırdığı GPU Hosting kullanmayı düşünün.

Hızlı Referans Kopya Sayfası

# ─── Basic Extraction ───────────────────────────────────────────
tar -xf file.tar                                   # No compression
tar -xzf file.tar.gz                               # Gzip
tar -xjf file.tar.bz2                              # Bzip2
tar -xJf file.tar.xz                               # XZ
tar --use-compress-program=unzstd -xf file.tar.zst # Zstandard

# ─── Common Options ─────────────────────────────────────────────
tar -xvf archive.tar                               # Verbose output
tar -C /target/dir -xf file.tar.gz                 # Extract to folder
tar --strip-components=1 -xf file.tar.gz           # Remove top-level dir
tar -xf archive.tar.gz --wildcards '*.conf'        # Wildcard filter
tar -xf archive.tar.gz --exclude='*.log'           # Exclude pattern

# ─── Inspection & Integrity ─────────────────────────────────────
tar -tf archive.tar.gz                             # List contents
gzip -t archive.tar.gz && echo "OK"                # Verify integrity

# ─── Edge Cases ─────────────────────────────────────────────────
tar -xzf broken.tar.gz --ignore-zeros              # Skip corrupt blocks
time tar -xf archive.tar.gz                        # Benchmark extraction
tar -I pigz -xf large-archive.tar.gz -C /dest      # Parallel extraction

Sonuç

tar komutu basit bir arşivleme yardımcı programından çok daha fazlasıdır — Linux ortamlarında veri paketleme, dağıtma, yedekleme ve geri yükleme için hassas bir araçtır. Gelişmiş bayraklarını öğrenerek, sıkıştırma formatlarını anlayarak, bunu shell betiklerine entegre ederek ve bozuk arşivleri nasıl işleyeceğinizi bilerek, veri yönetimi iş akışlarınız üzerinde tam kontrol elde edersiniz.

İster cPanel ile VPS yönetiyor olun ister birden fazla dedicated sunucu arasında dağıtımları yönetiyor olun, tar her Linux yöneticisinin araç setinde vazgeçilmez bir araç olmaya devam etmektedir. Bunu iyice anlamak için zaman ayırın — günlük işlemlerinizde elde edeceğiniz verimlilik kazançları buna değecektir.