tar -tf filename.tar
folder1/file
folder1/name
[...]
Ben ayıklamak istiyorum dosyasını ve adını , karşı klasörün2 . Bu tek gömlek olarak yapılabilir mi?
tar -tf filename.tar
folder1/file
folder1/name
[...]
Ben ayıklamak istiyorum dosyasını ve adını , karşı klasörün2 . Bu tek gömlek olarak yapılabilir mi?
Yanıtlar:
Kullanın -C
ve --strip-components
(Bkz. man tar
).
mkdir FOLDER
# for remote tar file
curl -L ’remote_tar_file' | tar -xz - -C FOLDER --strip-components=1
# for local tar file
tar -xzf FILENAME -C FOLDER --strip-components=1
-C
Bayrak katran dosyasının içeriğini içine genişletilebilir böylece bir dizin yer zaten varsayar. bu nedenle mkdir FOLDER
.
--strip-components
Bayrak bir tar dosyası doğal bir klasöre kendisini genişletmek o örnekler için github gibi, söz edelim ne zaman kullanılır repo-name-master
klasörü. Tabii ki ilk seviye klasörü burada üretilen bu yüzden gerek olmazdı --strip-components
ayarlı 1
sizin için otomatik olarak o ilk klasörü kaldırmak olacaktır. Sayı büyüdükçe, daha derin yuvalanmış klasörler silinir.
Bu --transform
seçeneği biraz daha fazla esneklik için de kullanabilirsiniz . Herhangi bir sed değiştirme işlemi kabul eder.
Örneğin, bir Linux tarball'ını yeni bir dizine bu şekilde çıkartıyorum, böylece bir yama uygulayabiliyorum:
tar -xjf linux-2.6.38.tar.bz2 --transform 's/linux-2.6.38/linux-2.6.38.1/'
man tar
. Tespit etmedi--strip-components
. güzel biri