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.