Linux'ta tar Komutunu Kullanarak Dosyaları Sıkıştırma ve Çıkarma
Yayınlanan: 2022-07-23Linux'ta tar komutu genellikle "tarball" olarak da adlandırılan .tar.gz veya .tgz arşiv dosyalarını oluşturmak için kullanılır. Bu komutun çok sayıda seçeneği vardır, ancak tar ile hızlı bir şekilde arşiv oluşturmak için birkaç harfi hatırlamanız yeterlidir. tar komutu, elde edilen arşivleri de çıkarabilir.
Linux dağıtımlarında bulunan GNU tar komutu, entegre sıkıştırmaya sahiptir. Bir .tar arşivi oluşturabilir ve ardından tek bir komutta gzip veya bzip2 sıkıştırmasıyla sıkıştırabilir. Bu nedenle ortaya çıkan dosya bir .tar.gz dosyası veya .tar.bz2 dosyasıdır.
Güncelleme, 18/07/22: Bu makaleyi doğruluk açısından inceledik ve hala Ubuntu'nun en son sürümünde ve diğer Linux dağıtımlarında çalıştığını doğrulayabiliriz.
Tüm Dizini veya Tek Dosyayı Sıkıştırın
Linux'ta bir dizinin tamamını veya tek bir dosyayı sıkıştırmak için aşağıdaki komutu kullanın. Ayrıca belirttiğiniz bir dizindeki diğer tüm dizini sıkıştırır – başka bir deyişle, özyinelemeli olarak çalışır.
tar -czvf arşivin adı.tar.gz /path/to/dizin-veya-dosya
İşte bu anahtarların aslında ne anlama geldiği:
- -c : Bir arşiv oluşturun.
- -z: Arşivi g z ip ile sıkıştırın.
- -v : Arşivi oluştururken terminalde ilerlemeyi görüntüleyin, “verbose” modu olarak da bilinir. Bu komutlarda v her zaman isteğe bağlıdır, ancak yararlıdır.
- -f : Arşivin dosya adını belirlemenizi sağlar.
Diyelim ki mevcut dizinde “stuff” adında bir dizininiz var ve onu arşiv.tar.gz adlı bir dosyaya kaydetmek istiyorsunuz. Aşağıdaki komutu çalıştırırsınız:
tar -czvf arşivi.tar.gz öğeleri
Veya mevcut sistemde /usr/local/something dizininde bir dizin olduğunu ve onuarchive.tar.gz adlı bir dosyaya sıkıştırmak istediğinizi varsayalım. Aşağıdaki komutu çalıştırırsınız:
tar -czvf arşivi.tar.gz /usr/local/something
Aynı Anda Birden Çok Dizini veya Dosyayı Sıkıştırın
İLGİLİ: Linux Terminalinden Dosyalar Nasıl Yönetilir: Bilmeniz Gereken 11 Komut
tar sıklıkla tek bir dizini sıkıştırmak için kullanılsa da, bunu birden çok dizini, birden çok tekil dosyayı veya her ikisini birden sıkıştırmak için de kullanabilirsiniz. Tek bir dosya veya dizin listesi yerine yalnızca bir dosya veya dizin listesi sağlayın. Örneğin, /home/ubuntu/Downloads dizinini, /usr/local/stuff dizinini ve /home/ubuntu/Documents/notes.txt dosyasını sıkıştırmak istediğinizi varsayalım. Sadece aşağıdaki komutu çalıştırırsınız:
tar -czvf arşivi.tar.gz /home/ubuntu/Downloads /usr/local/stuff /home/ubuntu/Documents/notes.txt
Yedeklemek istediğiniz kadar dizini veya dosyayı listeleyin.
Dizinleri ve Dosyaları Hariç Tut
Bazı durumlarda, tüm dizini sıkıştırmak isteyebilirsiniz, ancak belirli dosya ve dizinleri dahil etmeyebilirsiniz. Dışlamak istediğiniz her dizin veya dosya için bir --exclude
anahtarı ekleyerek bunu yapabilirsiniz.
Örneğin, /home/ubuntu dosyasını sıkıştırmak istediğinizi, ancak /home/ubuntu/Downloads ve /home/ubuntu/.cache dizinlerini sıkıştırmak istemediğinizi varsayalım. Bunu nasıl yapacağınız aşağıda açıklanmıştır:
tar -czvf arşivi.tar.gz /home/ubuntu --exclude=/home/ubuntu/Downloads --exclude=/home/ubuntu/.cache
--exclude
anahtarı çok güçlüdür. Dizin ve dosya adlarını almaz – aslında kalıpları kabul eder. Bununla yapabileceğiniz daha çok şey var. Örneğin, aşağıdaki komutla tüm dizini arşivleyebilir ve tüm .mp4 dosyalarını hariç tutabilirsiniz:
tar -czvf arşivi.tar.gz /home/ubuntu --exclude=*.mp4
Bunun yerine bzip2 Sıkıştırmasını Kullanın
.tar.gz veya .tgz dosyaları oluşturmak için en sık gzip sıkıştırması kullanılırken, tar ayrıca bzip2 sıkıştırmasını da destekler. Bu, genellikle .tar.bz2, .tar.bz veya .tbz dosyaları olarak adlandırılan bzip2 ile sıkıştırılmış dosyalar oluşturmanıza olanak tanır. Bunu yapmak için, buradaki komutlarda gzip için -z'yi bzip2 için -j ile değiştirin.
Gzip daha hızlıdır, ancak genellikle biraz daha az sıkıştırır, böylece biraz daha büyük bir dosya elde edersiniz. Bzip2 daha yavaştır, ancak biraz daha fazla sıkıştırır, böylece biraz daha küçük bir dosya elde edersiniz. Gzip ayrıca, varsayılan olarak gzip desteği de dahil olmak üzere, ancak bzip2 desteği değil, bazı soyulmuş Linux sistemlerinde daha yaygındır. Genel olarak, gzip ve bzip2 pratik olarak aynı şeydir ve her ikisi de benzer şekilde çalışır.
Örneğin, malzeme dizinini sıkıştırmak için verdiğimiz ilk örnek yerine aşağıdaki komutu çalıştırırsınız:

tar -cjvf arşivi.tar.bz2 öğeleri
Bir Arşivi Çıkarın
Bir arşiviniz olduğunda tar komutu ile arşivden çıkartabilirsiniz. Aşağıdaki komut, arşiv.tar.gz'nin içeriğini geçerli dizine çıkaracaktır.
tar -xzvf arşivi.tar.gz
-x
anahtarının -c
anahtarının yerini alması dışında, yukarıda kullandığımız arşiv oluşturma komutuyla aynıdır. Bu, bir arşiv oluşturmak yerine bir arşivi takip etmek istediğinizi belirtir.
Arşivin içeriğini belirli bir dizine çıkarmak isteyebilirsiniz. Komutun sonuna -C
anahtarını ekleyerek bunu yapabilirsiniz. Örneğin, aşağıdaki komut, arşiv.tar.gz dosyasının içeriğini /tmp dizinine çıkaracaktır.
tar -xzvf arşivi.tar.gz -C /tmp
Dosya bzip2 ile sıkıştırılmış bir dosyaysa, yukarıdaki komutlardaki “z”yi “j” ile değiştirin.
Bu, tar komutunun mümkün olan en basit kullanımıdır. Komut, çok sayıda ek seçenek içerir, bu nedenle hepsini burada listeleyemeyiz. Daha fazla bilgi için. tar komutunun ayrıntılı bilgi sayfasını görüntülemek için kabukta info tar komutunu çalıştırın. İşiniz bittiğinde bilgi sayfasından çıkmak için q tuşuna basın. Ayrıca tar'ın kullanım kılavuzunu çevrimiçi olarak da okuyabilirsiniz.
Grafik bir Linux masaüstü kullanıyorsanız, .tar dosyaları oluşturmak veya ayıklamak için masaüstünüzde bulunan dosya sıkıştırma yardımcı programını veya dosya yöneticisini de kullanabilirsiniz. Windows'ta, ücretsiz 7-Zip yardımcı programıyla .tar arşivlerini çıkarabilir ve oluşturabilirsiniz.
Linux Komutları | ||
Dosyalar | tar · pv · kedi · tac · chmod · grep · diff · sed · ar · adam · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · birleştirme · jq · katlama · uniq · dergictl · kuyruk · stat · ls · fstab · yankı · daha az · chgrp · chown · rev · bak · diziler · tür · yeniden adlandır · zip · unzip · mount · umount · yükle · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · yama · dönüştürmek · rclone · parçalamak · srm | |
süreçler | takma ad · ekran · üst · güzel · renice · ilerleme · strace · systemd · tmux · chsh · geçmiş · at · toplu · ücretsiz · hangi · dmesg · chfn · usermod · ps · chroot · xargs · tty · pembemsi · lsof · vmstat · zaman aşımı · duvar · evet · öldür · uyku · sudo · su · zaman · groupadd · usermod · gruplar · lshw · kapatma · yeniden başlatma · durdurma · güç kapatma · passwd · lscpu · crontab · tarih · bg · fg | |
ağ | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · kazmak · parmak · nmap · ftp · curl · wget · kim · whoami · w · iptables · ssh-keygen · ufw |
İLGİLİ: Geliştiriciler ve Meraklılar için En İyi Linux Dizüstü Bilgisayarlar