Bir tar arşivine dışlanan dizinden alt dizini dahil et


2

Ben kök klasör vardır USAve alt klasörleri Californiave Texas. Texasdışlanan bir alt klasördür ancak içinde tar yedeklemesine eklemek istediğim belirli bir dosya var. Bu dosyayı çağıralım Austin.

Bunu nasıl yaparım?


tar dosyasının oluşturulması üzerinde denetiminiz var mı? [FILE]Tar dosyasına dahil etmek için Texas / Austin'i bir başkası olarak eklemeniz yeterli. Örneğin: $ tar cvf /backup/states.tar --exclude = ABD / Teksas ABD ABD / Teksas / Austin
Jeff Schaller

Yanıtlar:


0

Katranı iki kere mi çalıştırın? Önce Texas'ı hariç tut ve sonra dosyayı aç.


0

BSD veya GNU tar ile nasıl rahatlıkla yapılacağını bilmiyorum. (Sakıncalı: dizinin kendisini dışlamayın, ancak eklemek istediğiniz dosya dışındaki tüm dosyaları dışlayın.)

POSIX'in cpio ve tar yerine kullandığı pax ile nispeten kolay bir şekilde yapabilirsiniz . Pax her yerde mevcut olsa da, bazı Linux dağıtımları onu varsayılan kurulumun bir parçası olarak içermez.

Pax dışlamaları yönetir ve aynı araçla yeniden adlandırır: -sseçenek. Bir dosya boş dize olarak yeniden adlandırılmışsa, hariç tutulur. -sSeçenekler sırayla işlenir ve bir dosya eşleştirilir kez (sürece, daha sonraki seçenekler bu dosya için işlenmez geki kullanılır). Böylece bir dosyayı, eşleşecek kural dışı bırakma kuralından önce kendi adıyla değiştirerek dışlayabilirsiniz.

pax -w >foo.tar -s '!^USA/Texas/Austin$!&!' -s'!^USA/Texas/.*!!' USA 

0

Bununla aynı şartta karşılaşıldı. Bir çözüm bulmak için buraya geldim, ancak bir tane bulamadım. Her neyse, iki kere katran çalıştırarak başarmayı başardım.

İlk önce tar dosyasını yaratıp Texasklasörü dışlayarak çalıştırın :

tar cvf foo.tar --exclude=Texas USA/

Sonra sadece oluşturulan tar dosyasına gerekli dosyayı ekleyin:

tar vfr foo.tar USA/Texas/Austin/

Bu sefer kaldırdık c(tar oluşturun) seçeneğini kullandık ve rekledik (ekle).


0

Sipariş önemlidir. Katranı iki kez çalıştırmanıza gerek yoktur.

tar cvf dest.tar USA/Texas/Austin --exclude=USA/Texas USA

GNU tar 1.29'da test edilmiştir

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.