Tar kullanarak belirli bir klasörü başka bir klasöre çıkarabilir miyim?


14

Linux dünyasında yeniyim ve tökezleyen bir engelle karşılaşmışım gibi görünüyor. Ben komutunu kullanarak bir Spesifk arşiv ayıklamak biliyorum tar xvfz archivename.tar.gz sampledir/ben ayıklamak nasıl Bununla sampledir/için testdir/arşiv egcurrently arşiv yolunda olduğunu olduğunu yolundan ziyade /tmp/archivename.tar.gzve ayıklamak istiyorum samplediriçin testdirhangi yolu olduğunu /tmp/testdir.

Yanıtlar:


19

Aradığınız -Cseçenek:

$ man tar
<snip>

-C, --directory DIR
       change to directory DIR

Kullanım, örnek başına:

$ tar xvzf archivename.tar.gz -C /tmp/testdir/ sampledir/

Ayrıca, modern sürümlerinin gzip edilmiş dosyaları açmak tariçin zbayrağa ihtiyaç duymadığını bilmek isteyebilirsiniz ; bunun bir farkına .gzvaracaklar ve otomatik olarak Doğru Şeyleri Yapacaklar.


Teşekkürler. Funnily soruyu göndermeden önce denedim ve başarısız oldu. Belki bir seçeneği kaçırdım. Tekrar deneyeceğim.
PeanutsMonkey

Brilliance. Bunu büyük arşivler için daima unuturum.
zmonteca

3

Her şeyi untarring ile çılgın oyunlar oynamak zorunda değilsiniz. Tar, aşağıdaki (önemsiz) örnekte gösterildiği gibi bir arşivdeki dosyaların yalnızca bir alt kümesinin çıkarılmasını tamamen destekler:

/tmp $ mkdir tarsrc
/tmp $ cd tarsrc
/tmp/tarsrc $ mkdir a b
/tmp/tarsrc $ touch a/aaa b/bbb
/tmp/tarsrc $ tar cf ../tartest.tar .
/tmp/tarsrc $ cd ..
/tmp $ mkdir tardest
/tmp $ cd tardest
/tmp/tardest $ tar xf ../tartest.tar ./a    
/tmp/tardest $ ls -R
.:
a/

./a:
aaa

Hile yolu pathspec tarfile içeriği tam olarak eşleşmesi gerekir. Yani, yaptığınız zaman tar tf, eğer yol başlarsa ./, bunu koymanız gerekir ve eğer yoksa, dışarıda bırakmanız gerekir. Ayrıca, bir alt-alt-alt-alt-alt-alt-alt yolunu ayıklamak isterseniz, işiniz bittiğinde dosya sisteminin derinliklerinde N düzeylerine ulaşacaktır.


Teşekkürler womble. Belki de kullanmak için doğru örnek değil ama katranı Winzip, WinRAR vb. benzer işlemi uygulayın, örneğin arşivden çıkarmak istediğiniz dosyayı seçin (tar bunu yapar) ve ayıklamak istediğiniz yolu seçin (tar, belirli bir dizinde bulunmadıkça bunu yapmaz).
PeanutsMonkey

-CO halde, katran seçeneğinin olmasını istiyorsunuz .
womble
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.