Ben (yani üreten başarıyla yürüten bir bash komut dosyası bu çok basit çizgi var _data.tar
o hariç dosyası) değil o aracılığıyla dışlamak anlatılıyor alt dizinleri dışlamak --exclude
seçeneği:
/bin/tar -cf /home/_data.tar --exclude='/data/sub1/*' --exclude='/data/sub2/*' --exclude='/data/sub3/*' --exclude='/data/sub4/*' --exclude='/data/sub5/*' /data
Bunun yerine, _data.tar
dışlamak istediğim alt dizinlerdeki dosyalar da dahil olmak üzere / data altındaki her şeyi içeren bir dosya üretir .
Neden bir fikrin var mı? ve bu nasıl düzeltilir?
Güncelleme Gözlemlerimi, aşağıdaki ilk cevapta verilen bağlantıya dayanarak gerçekleştirdim (ilk önce üst düzey dir, son dışlamadan sonra boşluk yok):
/bin/tar -cf /home/_data.tar /data --exclude='/data/sub1/*' --exclude='/data/sub2/*' --exclude='/data/sub3/*' --exclude='/data/sub4/*' --exclude='/data/sub5/*'
Ama bu yardımcı olmadı. Tüm "hariç tutulan" alt dizinler sonuç _data.tar
dosyasında bulunur.
Bu şaşırtıcı. Bunun şu anki katranda bir böcek (GNU tar 1.23, bir CentOS 6.2, Linux 2.6.32'de) veya katranın beyaz alanlara ve diğer kaçırılması kolay yazım hatalarına "aşırı hassasiyeti" olsun, bunu bir hata olarak görüyorum. Şimdilik.
Bu korkunç : Aşağıda önerilen bilgileri denedim (iz yok /*
) ve yapım senaryosunda hala çalışmıyor:
/bin/tar -cf /home/_data.tar /data --exclude='/data/sub1' --exclude='/data/sub2' --exclude='/data/sub3' --exclude='/data/sub4'
Ne denedim ve ne @Richard Perrin'in denediği, tırnak işaretleri ve 1 yerine 2 boşluk dışında hiçbir fark göremiyorum. Bunu deneyeceğim (gecelik betiğin yedeklenecek dizin olarak çalışmasını beklemeliyim) yukarı çok büyük) ve geri rapor edin.
/bin/tar -cf /home/_data.tar /data --exclude=/data/sub1 --exclude=/data/sub2 --exclude=/data/sub3 --exclude=/data/sub4
Tüm bu tar --exclude
duyarlılıkların katran değil, çevremdeki bir şey olduğunu düşünmeye başlıyorum , ama sonra bu ne olabilir?
İşe yaradı! --exclude
Denenen son varyasyon (s'ler arasında çift boşluk yerine tek tırnaklar ve tek boşluklar yok ) denenmiştir. Garip ama kabul ediyorum.
Inanılmaz! Bu eski bir sürümü çıkıyor tar
üst düzey dir ise (1.15.1) sadece dışlayacak son komut satırında. Bu, 1.23 sürümünün gerektirdiğinin tam tersi. Bilginize.