Yanıtlar:
Katranı iki kere mi çalıştırın? Önce Texas'ı hariç tut ve sonra dosyayı aç.
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: -s
seçenek. Bir dosya boş dize olarak yeniden adlandırılmışsa, hariç tutulur. -s
Seçenekler sırayla işlenir ve bir dosya eşleştirilir kez (sürece, daha sonraki seçenekler bu dosya için işlenmez g
eki 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
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 Texas
klasö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 r
ekledik (ekle).
[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