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.
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.
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.