Linux'ta .tar.gz veya .tar.bz2 Dosyasından Dosya Çıkarma

Tar dosyaları sıkıştırılmış arşivlerdir. Ubuntu gibi bir Linux dağıtımını kullanırken veya hatta macOS'ta terminali kullanırken bunlarla sık sık karşılaşacaksınız. Tarball olarak da bilinen bir tar dosyasının içeriğini nasıl ayıklayacağınız veya kaldıracağınız aşağıda açıklanmıştır.

.Tar.gz ve .tar.bz2 Ne Anlama Geliyor?

Bir .tar.gzveya .tar.bz2uzantıya sahip dosyalar sıkıştırılmış arşiv dosyalarıdır. Yalnızca bir .taruzantıya sahip bir dosya sıkıştırılmamıştır, ancak bunlar çok nadir olacaktır.

.tarDosya uzantısının kısmı açılımı t maymun ar chive ve bu dosya türlerinin her ikisi katran dosyaları dendiğini nedenidir. Tar dosyaları tar, sistem yöneticilerinin dosyaları teybe arşivlemesine izin vermek için komutun oluşturulduğu 1979 yılına kadar uzanır . Kırk yıl sonra hala tartar dosyalarını sabit disklerimize çıkarmak için bu komutu kullanıyoruz. Muhtemelen bir yerlerde birileri hala tarkaset kullanıyor .

.gzVeya .bz2uzatma eki arşivi kullanılarak, ya sıkıştırılmış olduğunu gösterir gzipveya bzip2sıkıştırma algoritması. tarKullanıldığı-edildi ve bir Bash kabuğu vardır her yerde kullanılabilir olması gereken sıkıştırma yöntemi fark etmez, böylece komut, dosyanın her iki tür ile mutlu bir çalışacaktır. Sadece uygun tar komut satırı seçeneklerini kullanmanız gerekir .

Tar Dosyalarından Dosyaları Çıkarma

Diyelim ki iki müzik notası dosyası indirdiniz. Bir dosya çağrılır ukulele_songs.tar.gz, diğeri denir guitar_songs.tar.bz2. Bu dosyalar İndirilenler dizinindedir.

Ukulele şarkılarını çıkaralım:

tar -xvzf ukulele_songs.tar.gz 

Dosyalar çıkarıldıkça terminal penceresinde listelenirler.

Kullandığımız komut satırı seçenekleri şunlardır:

  • -x : Dosyaları tar dosyasından ayıklayın, alın.
  • -v : Ayrıntılı, dosyaları çıkarılırken listeleyin.
  • -z : Gzip, tar dosyasını açmak için gzip kullanın.
  • -f : Dosya, tarçalışmak istediğimiz tar dosyasının adı . Bu seçeneğin ardından tar dosyasının adı gelmelidir.

Dizindeki dosyaları ile listeleyin ve lsUkulele Şarkıları adlı bir dizinin oluşturulduğunu göreceksiniz. Çıkarılan dosyalar bu dizindedir. Bu rehber nereden geldi? Bu yer aldığını tardosyası ve dosyalarıyla birlikte ekstre edildi.

Şimdi gitar şarkılarını çıkaralım. Bunu yapmak için öncekiyle hemen hemen aynı komutu kullanacağız, ancak önemli bir farkla. .bz2Uzatma eki o bzip2 komutunu kullanarak sıkıştırılmış olmuştur söyler. Bunun yerine kullanmanın -z(gzip) seçeneğini, biz kullanacağız -j(bzip2) seçeneğini.

tar -xvjf guitar_songs.tar.bz2

Bir kez daha, dosyalar çıkarılırken terminale listelenir. Açık olmak gerekirse tar, .tar.bz2dosya için kullandığımız komut satırı seçenekleri şunlardı:

  • -x : Dosyaları tar dosyasından çıkartın, geri alın.
  • -v : Ayrıntılı, dosyaları çıkarılırken listeleyin.
  • -j : Bzip2, tar dosyasını açmak için bzip2'yi kullanın.
  • -f : Dosya, tar ile çalışmak istediğimiz tar dosyasının adı.

Dosyaları İndirme dizininde listelersek, Gitar Şarkıları adlı başka bir dizinin oluşturulduğunu göreceğiz.

Dosyaların Nereye Çıkarılacağını Seçme

Dosyaları mevcut dizinden farklı bir konuma çıkarmak istiyorsak, -C(belirtilen dizin) seçeneğini kullanarak bir hedef dizin belirleyebiliriz .

tar -xvjf guitar_songs.tar.gz -C ~ / Belgeler / Şarkılar /

Belgeler / Şarkılar dizinimize baktığımızda Gitar Şarkıları dizininin oluşturulduğunu göreceğiz.

Hedef dizinin zaten mevcut olması gerektiğini, taryoksa onu oluşturmayacağını unutmayın. Bir dizin oluşturmanız ve tardosyaları tek bir komutla içine çıkarmanız gerekiyorsa, bunu aşağıdaki gibi yapabilirsiniz:

mkdir -p ~ / Belgeler / Şarkılar / İndirilen && tar -xvjf guitar_songs.tar.gz -C ~ / Belgeler / Şarkılar / İndirilen /

-p (Veliler) seçeneği neden mkdirhedef dizin oluşturulur sağlanması gereklidir herhangi bir ana dizinleri oluşturun.

Tar Dosyalarını Çıkarmadan Önce İçine Bakmak

Şimdiye kadar az önce bir inanç sıçraması yaptık ve görünmeyen dosyaları çıkardık. Atlamadan önce bakmak isteyebilirsiniz. (Liste) seçeneğini tarkullanarak bir dosyanın içeriğini çıkarmadan önce gözden geçirebilirsiniz -t. Çıktıyı lesskomut aracılığıyla yönlendirmek genellikle uygundur .

tar -tf ukulele_songs.tar.gz | az

-zDosyaları listeleme seçeneğini kullanmamız gerekmediğine dikkat edin . Biz sadece eklemeniz gerekir -zbiz ediyoruz seçeneği ayıklanması bir dosya .tar.gzdosyası. Aynı şekilde, -jdosyaları bir tar.bz2dosyada listeleme seçeneğine ihtiyacımız yok .

Çıktıya baktığımızda, tar dosyasındaki her şeyin Ukulele Şarkıları adlı bir dizinde tutulduğunu görebiliriz ve bu dizin içinde dosyalar ve diğer dizinler vardır.

Ukulele Şarkıları dizininin Rastgele Şarkılar, Ramonlar ve Olasılıklar adlı dizinler içerdiğini görebiliriz.

Tüm dosyaları bir tar dosyası içindeki bir dizinden çıkarmak için aşağıdaki komutu kullanın. Yolda boşluklar olduğundan, yolun tırnak işaretleri içine alındığına dikkat edin.

tar -xvzf ukulele_songs.tar.gz "Ukulele Şarkıları / Ramones /"

Tek bir dosyayı çıkarmak için dosyanın yolunu ve adını belirtin.

tar -xvzf ukulele_songs.tar.gz "Ukulele Şarkıları / 023 - My Babe.odt"

*Herhangi bir karakter dizesini ve ?herhangi bir tek karakteri temsil eden joker karakterleri kullanarak bir dizi dosya ayıklayabilirsiniz . Joker karakterlerin kullanılması, --wildcardsseçeneğin kullanılmasını gerektirir .

tar -xvz --wildcards -f ukulele_songs.tar.gz "Ukulele Şarkıları / Olasılıkları / B *"

Dizinleri Ayıklamadan Dosyaları Ayıklama

Tar dosyasındaki dizin yapısının sabit sürücünüzde yeniden oluşturulmasını istemiyorsanız, --strip-componentsseçeneği kullanın. --strip-componentsSeçenek sayısal parametre gerekir. Sayı, kaç dizin düzeyinin yoksayılacağını temsil eder. Göz ardı edilen dizinlerdeki dosyalar hala çıkarılır, ancak dizin yapısı sabit sürücünüzde kopyalanmaz.

--strip-components=1Örnek tar dosyamızla belirtirsek tar dosyasında en üstteki Ukulele Şarkıları dizini sabit sürücüde oluşturulmaz. Bu dizine çıkartılacak dosyalar ve dizinler hedef dizinde çıkarılır.

tar -xvzf ukulele_songs.tar.gz --şerit-bileşenleri = 1

Örnek tar dosyamızda yalnızca iki dizin iç içe geçme düzeyi vardır. Yani kullanırsak --strip-components=2, tüm dosyalar hedef dizinde çıkarılır ve başka hiçbir dizin oluşturulmaz.

tar -xvzf ukulele_songs.tar.gz --strip-components = 2

Linux kılavuz sayfasına bakarsanız, bunun tar"en çok komut satırı seçeneğine sahip komut" unvanı için iyi bir aday olması gerektiğini göreceksiniz . Neyse ki, dosyaları .tar.gzve tar.bz2dosyalardan iyi derecede ayrıntılı denetimle ayıklamamıza izin vermek için , bu seçeneklerden yalnızca bir kısmını hatırlamamız gerekiyor.