tar - Çıkarma işleminde lider dizin bileşenlerini kaldırın


104

Tüm dir ağacı değil, sadece hedef direktörü nasıl çıkarabilirsiniz?

kompres

tar cf /var/www/site.tar /var/www_bak/site

Ayıkla

tar xf /var/www/site.tar -C /tmp

Bu üretecektir:

/tmp/var/www/site

Dosya ayıklanırken tüm dir ağacının oluşmasını önlemek nasıl mümkün olabilir?

Neyin çıkarmasını istediğim:

/tmp/site

Yanıtlar:


34

Neden -Coluştururken seçeneği kullanmıyorsunuz :

$ tar cf /var/www/site.tar -C /var/www_bak/ site

1
TMTOWTDI. Aynı -Cseçeneği kullanarak da işe yarayabilir ;)
MikeyB

12
Yolu, bazı dizinlerden çıkarmak, çıktı dizinini değiştirmek istemiyor. Doğru cevap için aşağıya bakınız.
aymericbeaumet

4
Arşivi başka biri hazırladığında kullanamayız.

Çünkü `` `_t = önek - $ (tarih +% Y% m% d); tar -cjf ".backups / $ _ t.tar.bz2" --transform = "s # ^ (\ ./)? # $ _ t / # x;" -- Dosyalar...; tar -df ".backups / $ _ t.tar.bz2" --strip-components = 1 `` `
AnrDaemon 3:18

258

--strip-components=NUMBERSeçeneğini kullanmak istersiniz tar:

 --strip-components=NUMBER
       strip NUMBER leading components from file names on extraction

Emriniz:

tar xfz /var/www/site.gz --strip-components=2 -C /tmp

19
Bu cevap daha iyidir, çünkü katran yaratımından önce düşünmeniz gerekmez. Önceden oluşturulmuş bir tar dosyasıyla kullanabilirsiniz. @MikeyB teşekkürler!
Fabien Quatravaux

4
Bu çalışmaları hem GNU katranında hem de BSD katranında rapor etmekten memnuniyet duyuyorum.
Nathan Osman,

4
ve çünkü katran yaratıcısı olmayabilirsin ... (ya da başka bir aletle yapıyorsan ve bu alet aptalca şeyler yaparsa ...)
xenoterracide 13:16

Yine --strip-componentsde, meşgul kutusuna gömülü bir uygulama kullanıyorsanız , yine de bayrak eksik olabilir tar.
sylvainulg

1
@FabienQuatravaux Peki, evet --- bir hata yaptıysanız ve çıkartma sırasında görmek istemediğiniz önde gelen dizinleri içeren bir arşiv oluşturduysanız. Ancak, ilk başta istenmeyen istenmeyen dizinler olmadan arşivi oluşturmak daha açıktır.
Calaf
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.