Soru Başka bir klasöre tar kullanarak belirli bir klasörü ayıklayabilir miyim?


Linux dünyasında yeniyim ve tökezleyen bir bloğa girdim. Komutu kullanarak belirli bir arşivi çıkarabileceğimi biliyorum. tar xvfz archivename.tar.gz sampledir/ Ancak nasıl ayıklayabilirim sampledir/ için testdir/ arşivin, örneğin arşivi olduğu yoldan ziyade, arşiv yolun üzerindedir. /tmp/archivename.tar.gz ve ben çıkarmak istiyorum sampledir için testdir yoldaki /tmp/testdir.


14
2017-07-12 22:34


Menşei




Cevaplar:


Aradığın şey -C seçeneği:

$ man tar
<snip>

-C, --directory DIR
       change to directory DIR

Kullanımınıza örnek olarak:

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

Ayrıca, modern sürümlerini bilmek isteyebilirsiniz. tar gerek yok z gzip dosyalarını açmak için bayrak; bunun bir fark olduğunu fark edecekler .gz ve Doğru Şeyi otomatik olarak yapın.


19
2017-07-12 23:46



Teşekkürler. Eğlenceli bir şekilde soruyu göndermeden önce denedim ve başarısız oldu. Belki bir seçeneği özledim. Tekrar deneyeceğim. - PeanutsMonkey
Brilliance. Büyük arşivler için bunu hep unutuyorum. - zmonteca


Unutturmakla çılgın oyunlar oynamanıza gerek yok. Tar, aşağıdaki (önemsiz) örnekte gösterildiği gibi, bir arşivdeki dosyaların bir alt kümesini yalnızca tamamen ayıklayarak 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, pathspec'in tam olarak tarfile ile eşleşmesi gerektiğidir. Yani bir tar tfyolun ile başlarsa ./Onu içeri almalısın ve eğer sahip değilse, onu dışarıda bırakmak zorundasın. Ayrıca, bir alt alt alt alt alt alt alt yolunu ayıklamak isterseniz, işiniz bittiğinde dosya sisteminde N düzeylerini düzeltir.


3
2017-07-12 23:10



Teşekkürler womble. Belki kullanmak için doğru bir örnek değil ama ben tarla Winzip, WinRAR, vs ile karşılaştırıyor ve katran yanlış bir komut olduğunu biliyorum, ancak tar unarchiving gzip ve bzip dosyalarını örnek gördüğümüzü görebiliyordum. benzer işlemleri uygulayın örn. arşivden çıkarmak istediğiniz dosyayı seçin (tar bunu yapar) ve çıkarmak istediğiniz yolu seçin (tar dizini, belirli bir dizinde olmadıkça bunu yapmaz). - PeanutsMonkey
Sen istiyorsun -C O zaman katran seçeneği. - womble♦