Bir .tar.gz dosyasını açmak / çıkarmak için hangi komutu kullanmalıyım?


830

Yaklaşık 800 mb görüntü dosyası içeren bir istemciden çok büyük bir .tar.gz dosyası aldım (sıkıştırılmamışsa). Hosting şirketimizin ftp'si oldukça yavaştır, bu nedenle tüm dosyaları yerel olarak ayıklamak ve ftp yoluyla göndermek pratik değildir. .Tar.gz dosyasını hosting sitemize döndürebiliyordum, ancak dizine yazıp unzip kullanmayı denediğimde, bu hatayı veriyor:

[esthers@clients locations]$ unzip community_images.tar.gz
Archive:  community_images.tar.gz
  End-of-central-directory signature not found.  Either this file is not a zipfile, or it constitutes one disk of a multi-part archive.  In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive.
note:  community_images.tar.gz may be a plain executable, not an archive
unzip:  cannot find zipfile directory in one of community_images.tar.gz or community_images.tar.gz.zip, and cannot find community_images.tar.gz.ZIP, period.

Bir .tar.gz dosyasındaki tüm dosyaları çıkarmak için hangi komutu kullanmam gerekiyor?

Yanıtlar:


1390

Tip man tarfazla bilgi için, ancak bu komut hile yapmak gerekir:

tar -xvzf community_images.tar.gz

Biraz daha açıklamak için, tar tüm dosyaları bir pakette topladı community_images.tar,. Gzip programı sıkıştırma uyguladı, dolayısıyla gz uzantısı. Yani komut birkaç şey yapar:

  • f: bu komutun son bayrağı olmalı ve hemen ardından tar f ile yazılmalıdır. Tar sıkıştırılmış dosyanın adını ve yolunu söyler.
  • z: tar'ya arşivi g z ip kullanarak açmasını söyler
  • x: Katran dosyaları veya e toplayabilir x onları gastrointestinal sistem. xikincisi yapar.
  • v: tar çok konuşur. V erbose çıkışı, çıkartılmakta olan tüm dosyaları gösterir.

5
@Shiki Önerilen düzenlemenizi gördüm. Bunun uygun bir değişiklik olduğunu sanmıyorum, bu aracı açıklamamı tercih ediyorum. Ben do senin düşünüyorum tar -xföneri büyük ek bir cevap olur.
djeikyb

3
Bu, benzer şekilde ifade edilen milyonlarca sorudan daha iyi açıklamalardan biridir
JohnMerlino

1
@KasunSiyambalapitiya Varsayılan olarak, geçerli klasörde sona erer. Ayrıca bakınız man tar; -Cseçeneği arayın . Ya da belki diğer cevabı kontrol et 😉
djeikyb 7:16

6
Xckd'nin tar ile ilgili makalesini hatırlatıyor . Her zaman geri gelmeliyim.
mgarey

19
Bunun için My anımsatıcı geçerli: x yolu z e v *** ing f iles.
Agargara

172

Dosyaların belirli bir hedefe ayıklanmasını istiyorsanız, ekleyebileceğiniz dizini yaptığınızdan emin olun, bu durumda: ~ / Pictures / Community-C /destination/path/

Örnek:

mkdir ~/Pictures/Community
tar xf community_images.tar.gz -C /home/emmys/Pictures/Community/

Eğer sarsmamak eğer kolayca ezberleyemiyor tar e X'in bir yolunu F ile

Terminalde yapılan işlemin gif

Not: Eğer adam sayfaları içinde arama yapabilirsiniz hatırla ?aramaya + vadede ve sonra nve Naradığınız terimin önceki veya sonraki örneğine gitmek için.


5
" c hange dizini" için C'yi unutma ! Ayrıca, kısa çizgi ve kısa çizgi olmayan seçenekleri karıştırmamanın daha iyi olduğunu düşünüyorum (özellikle kullanırken kafa karıştırıcı ). ps
djeikyb

2
Niye hiç diğer emirler gibi değil?
Jan M.

6
Asla 'tar' a X ile F ile 'yapmayı seviyorum
Nam G VU

2
Animasyonlu gif için 1+
Nick Steele

Bir de kullanabilirsiniz --directory="/home/emmys/Pictures/Community/"(ki hatırlamak daha kolay olduğunu düşünüyorum -C).
Patrick Dark

107

Bir noktada tarotomatik dekomprese yükseltildi. Şimdi tek ihtiyacınız olan şey:

tar xf community_images.tar.gz

Aynı açıklama geçerlidir:

  • f: bu komutun son bayrağı olmalı ve hemen ardından tar f ile yazılmalıdır. Tar sıkıştırılmış dosyanın adını ve yolunu söyler.
  • x: e x dosyaları açın.

Komut bayrakları için kısa çizgi olmadığına dikkat edin. Bunun nedeni, çoğu katran sürümünün hem gnu hem de bsd stil seçeneklerine izin vermesidir (basitçe gnu bir tire gerektirir, bsd yoktur).


1
Bununla ilgili herhangi bir belge var mı? Buna referans aramak için her yerde arama yaptım, asla -z bayrağını kullanmam ve her şey gzip'ledi, bu yüzden tarball'larımı sıkıştırmadıysam endişelendim. Teşekkürler.
neurosnap


3
Muhtemelen orijinal cevabınızı düzenlemek daha iyi olurdu.
Seth

3
@Set, özellikle onu kışkırtan yıkıcı düzenleme bağlamında ayrı bir cevap olacak kadar kendini hissettiriyor / hissediyordu. Yine de işten sonra tekrar düşüneceğim, birleştirmek için başlangıçta düşündüğümden daha basit bir yol olabilir.
djeikyb

2
@EnricoMariaDeAngelis en az 2004'ten beri bsd tar ve en az 2010'dan beri gnu tar bir dekompresörü otomatik olarak seçmeyi destekledi. Bu "mümkün" (bu yüzyılda? doksanların +?
djeikyb

11

Tüm bayrakları hatırlamak tarsıkıcı olabilir. Zorunlu XKCD:

görüntü tanımını buraya girin

Bu yüzden Python'da kendi küçük senaryomu yazdım. Hızlı, kirli, cpkullanımda benzeri:

#!/usr/bin/env python3
import tarfile,sys,os
tf = tarfile.open(name=sys.argv[1],mode='r:gz')
where = '.'
if len(sys.argv) == 3:
    where = sys.argv[2]
tf.extractall(path=where)
tf.close()

Öyle kullanın:

myuntar.py archive.tar

Zip arşivlerini açmak için de benzer betiğe bakınız .


2
:) -cafdosya adına göre oluşturup hatırlamak için sadece iki katran bayrağı -xf(AFAIK her katran türünde çalışır).
Videonauth

@Videonauth Biliyorum, o kadar da karmaşık değil, ama nedense bu seçenekleri asla hatırlamıyorum. Belki de yeterince sık arşivlerle uğraşmadığım içindir.
Sergiy Kolodyazhnyy

Bu sadece gzipli tar dosyaları olacak mı? api docs şeffaf sıkıştırma ile okuma için bir moddan bahseder; Bu daha çok gibi davranır tar xf <file>mıydı?
djeikyb

7

Hızlı cevap:

tar -xvf  <.tar file> or <.tar.xz file>
tar -xzvf <.tar.gz file>
tar -xjvf <.tar.bz2 file>

[ NOT ]:

  • -v İşlenen dosyaları ayrıntılı olarak listeler.
  • -z Arşivi gzip ile filtreleyin.
  • -f Arşiv dosyasını veya ARCHIVE cihazını kullanın.
  • -x Dosyaları bir arşivden çıkarın.
  • -j bzip2.
  • tar -xfarchive.tar # Tüm dosyaları ayıkla archive.tar.

4

.tar.gzKullanarak dosya ayıklamak mümkün değil durumda

tar -xvzf fileName.tar.gz

Kullanarak ayıklamayı deneyin

tar xf fileName.tar.gz

4
eğer bir gzip tar dosyasıysa, ilk komut her zaman çalışacaktır. işe yaramazsa, bir gzipped tar dosyanız yoktur. İkinci komut, tar dosyalarında hangi sıkıştırma algoritmasının kullanıldığını önemsemeyenlere harika bir öneridir.
djeikyb

0

Bunu da ilk adımda yapabilirsiniz:

gunzip community_images.tar.gz

Sonra dosya var: community_images.tar

İkinci adım:

tar -xvf community_images.tar

Ve * .tar dosyası çıkarıldı.


0

tar xvf file.tar.gz

  • özü için x
  • ayrıntılı için v (liste dosyaları)
  • dosya adı için f sonra

Herhangi bir uzaktan kumandalı tar sürümü, arşivi kaldırdığınızı otomatik olarak algılamalı ve sizin için "z" eklemelidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.