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

Fatmawati Achmad Zaenuri/Shutterstock.com

Tar dosyaları sıkıştırılmış arşivlerdir. Ubuntu gibi bir Linux dağıtımı kullanırken veya hatta macOS'ta terminali kullanırken onlarla sıkça karşılaşırsınız. İşte bir tarball olarak da bilinen bir tar dosyasının içeriğini nasıl ayıklayacağınızı (veya yıldızdan çıkarmayı) İşte.

.Tar.gz ve .tar.bz2 Nedir?

.tar.gz veya .tar.bz2 uzantılı dosyalar sıkıştırılmış arşiv dosyalarıdır. Sadece bir .tar uzantılı bir dosya sıkıştırılmamış, ancak bu çok nadir olacaktır.

.tar dosya uzantısının kısmı t maymun ar chive anlamına gelir ve bu dosya türlerinin her ikisi katran dosyaları adı verilir nedenidir. Tar dosyaları, sistem yöneticilerinin dosyaları kasete arşivlemesini sağlamak için tar komutu oluşturulduğunda, 1979 yılına kadar uzanır. Kırk yıl sonra hala kullanıyor tar bizim sabit diskler üzerine katran dosyaları ayıklamak için komut. Bir yerlerde birileri muhtemelen hala tar ile bant kullanıyor.

.gz veya .bz2 uzantı eki, arşivin gzip veya bzip2 sıkıştırma algoritması kullanılarak sıkıştırıldığını gösterir. tar komutu her iki dosya türünde de mutlu bir şekilde çalışır, bu nedenle hangi sıkıştırma yönteminin kullanıldığı önemli değildir – ve bir Bash kabuğuna sahip olduğunuz her yerde kullanılabilir olması gerekir. Sadece uygun tar komut satırı seçeneklerini kullanmanız gerekir.

Tar Dosyalarından Dosyaları Çıkarma

Diyelim ki iki nota dosyası indirdiniz. Bir dosyaya ukulele_songs.tar.gz , diğeri guitar_songs.tar.bz2 denir. Bu dosyalar İndirilenler dizinindedir.

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

tar -xvzf ukulele_songs.tar.gz

Dosyalar ayıklanırken, terminal penceresinde listelenir.

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

  • -x : Ayıkla, dosyaları tar dosyasından al.
  • -v : Verbose, dosyaları çıkartıldıkları sırada listeler.
  • -z : Gzip, tar dosyasını açmak için gzip kullanın.
  • -f : Dosya, tar çalışmasını istediğimiz tar dosyasının adı. Bu seçeneği tar dosyasının adı takip etmelidir.

Dizindeki dosyaları ls ile listelediğinizde Ukulele Songs adlı bir dizinin oluşturulduğunu göreceksiniz. Çıkarılan dosyalar bu dizinde. Bu dizin nereden geldi? Bu tar dosyasında yer aldı ve dosyaları ile birlikte çıkarıldı.

Şimdi gitar şarkılarını çıkaralım. Bunu yapmak için, hemen hemen tam olarak aynı komutu kullanacağız ancak önemli bir farkla kullanacağız. .bz2 uzantılı soneki, bzip2 komutu kullanılarak sıkıştırılmış olduğunu söyler. -z (gzip) seçeneğini kullanmak yerine, -j (bzip2) seçeneğini kullanacağız.

tar -xvjf guitar_songs.tar.bz2

Bir kez daha, dosyalar terminale çıkarıldıkları şekilde listelenir. Açık olmak gerekirse, .tar.bz2 dosyası için tar ile kullandığımız komut satırı seçenekleri:

  • -x : Ayıkla, dosyaları tar dosyasından al.
  • -v : Verbose, dosyaları çıkartıldıkları sırada listeler.
  • -j : Bzip2, tar dosyasını açmak için bzip2 kullanın.
  • -f : Dosya, tar'ın çalışmasını istediğimiz tar dosyasının adı.

İndirme dizinindeki dosyaları listelersek, Guitar Songs adlı başka bir dizinin oluşturulduğunu göreceğiz.

Dosyaları Ayıklamak İçin Nereyi Seçmek

Dosyaları geçerli dizinden başka bir yere çıkarmak istiyorsak -C (belirtilen dizin) seçeneğini kullanarak bir hedef dizin belirleyebiliriz.

tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/

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

Hedef dizinin zaten mevcut olması gerektiğini unutmayın, mevcut değilse tar oluşturmaz. Bir dizin oluşturmanız ve tüm dosyaları tek bir komut halinde tar çıkarmanız gerekirse, bunu aşağıdaki şekilde yapabilirsiniz:

mkdir -p ~/Documents/Songs/Downloaded && tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/Downloaded/

-p (ebeveynler) seçeneği, mkdir , istenen dizinin oluşturulmasını sağlayarak gerekli olan üst dizinleri oluşturmasına neden olur.

Eklemeden Önce Tar Dosyalarının İçine Bakmak

Şimdiye kadar sadece bir inanç sıçraması yaptık ve görünmeyen dosyaları çıkardık. Atlamadan önce bakmak isteyebilirsiniz. -t (list) seçeneğini kullanarak bir tar dosyasının içeriğini çıkarmadan önce inceleyebilirsiniz. Çıktının less komutla yönlendirilmesi genellikle uygundur.

tar -tf ukulele_songs.tar.gz | less

Dosyaları listelemek için -z seçeneğini kullanmamıza gerek olmadığına dikkat edin. Biz sadece eklemeniz gerekir -z bir dosya ayıklanması yaparken seçeneği .tar.gz dosyası. Aynı şekilde, dosyaları bir tar.bz2 dosyasında listelemek için -j seçeneğine de ihtiyacımız yok.

Çıktı boyunca ilerlerken tar dosyasındaki her şeyin Ukulele Şarkıları adlı bir dizinde tutulduğunu ve bu dizinde dosyalar ve diğer dizinlerin olduğunu görebiliriz.

Ukulele Songs dizininde Random Songs, Ramones ve Possibles adında dizinler olduğunu görebiliriz.

Tüm dosyaları bir tar dosyası içindeki bir dizinden çıkarmak için aşağıdaki komutu kullanın. Yolun tırnak işaretleri içine alındığını, çünkü yol içinde boşluklar bulunduğunu unutmayın.

tar -xvzf ukulele_songs.tar.gz “Ukulele Songs/Ramones/”

Tek bir dosyayı çıkartmak için dosyanın yolunu ve adını girin.

tar -xvzf ukulele_songs.tar.gz “Ukulele Songs/023 – My Babe.odt”

Joker karakter kullanarak bir dosya seçimi çıkarabilirsiniz, burada * herhangi bir karakter dizisini temsil eder ve ? herhangi bir tek karakteri temsil eder. Joker karakterler kullanmak, --wildcards seçeneğinin kullanılmasını gerektirir.

tar -xvz –wildcards -f ukulele_songs.tar.gz “Ukulele Songs/Possibles/B*”

Dizinleri Ayırmadan Dosyaları Çıkarma

Tar dosyasındaki dizin yapısının sabit sürücünüzde yeniden oluşturulmasını istemiyorsanız, --strip-components seçeneğini kullanın. --strip-components seçeneği sayısal bir parametre gerektirir. Sayı kaç tane dizin seviyesinin yoksayılacağını gösterir. Yok sayılan dizinlerden dosyalar hala ayıklanıyor, ancak dizin yapısı sabit sürücünüzde çoğaltılmıyor.

Örnek tar dosyamızla --strip-components=1 belirtirsek, tar dosyasının içindeki en üstteki Ukulele Şarkıları sabit sürücüde oluşturulmaz. Bu dizine ayıklanan dosyalar ve dizinler hedef dizine çıkarılır.

tar -xvzf ukulele_songs.tar.gz –strip-components=1

Örnek tar dosyamızda yalnızca iki dizin dizilimi vardır. Bu nedenle --strip-components=2 , tüm dosyalar hedef dizinde ayıklanır ve başka hiçbir dizin oluşturulmaz.

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

Eğer Linux kılavuz sayfasında bakarsanız görürsünüz tar başlığı için iyi bir aday olmak zorunda “en komut satırı seçeneklerini sahip komutu.” Neyse ki, bize dosyaları ayıklamak için izin .tar.gz ve tar.bz2 dosyaları iyi derecede ayrıntılı kontrol ile yalnızca bu seçeneklerin bir avuçunu hatırlamamız gerekir.