क्या कोई सरल शेल कमांड / स्क्रिप्ट है जो कुछ फ़ाइलों / फ़ोल्डरों को संग्रहीत करने से रोकने का समर्थन करता है?
मेरे पास एक निर्देशिका है जिसे एक उप निर्देशिका के साथ संग्रहीत करने की आवश्यकता है जिसमें बहुत बड़ी फ़ाइलों की संख्या है जिन्हें मुझे बैकअप की आवश्यकता नहीं है।
बिलकुल समाधान नहीं:
tar --exclude=PATTERN
आदेश दिए गए पैटर्न और शामिल नहीं उन फ़ाइलों से मेल खाता है, लेकिन मैं विशिष्ट फ़ाइलों और फ़ोल्डरों को नजरअंदाज किया जा करने के लिए (पूर्ण फ़ाइल पथ), अन्यथा वैध फ़ाइलें बाहर किए जा सकते की जरूरत है।
मैं फ़ाइलों की एक सूची बनाने और उन लोगों को बाहर करने के लिए भी खोज आदेश का उपयोग कर सकता हूं जिन्हें मैं संग्रह नहीं करना चाहता और सूची को टार में पारित करना चाहता हूं, लेकिन यह केवल फाइलों की एक छोटी राशि के लिए काम करता है। मेरे पास हजारों हैं।
मुझे लगता है कि एकमात्र समाधान यह है कि एक फाइल बनाने के लिए एक फाइल बनाई जाए जिसमें फ़ोल्डर / फ़ोल्डर को बाहर रखा जाए, फिर rsync का उपयोग करें --exclude-from=file
सभी फ़ाइलों को tmp निर्देशिका में कॉपी करें, और फिर उस निर्देशिका को संग्रहीत करने के लिए टार का उपयोग करें।
क्या कोई बेहतर / अधिक कुशल समाधान के बारे में सोच सकता है?
EDIT: चार्ल्स मा का समाधान अच्छी तरह से काम करता है। बड़ा गोटा यह है कि --exclude='./folder'
MUST टार कमांड की शुरुआत में होना चाहिए । पूर्ण कमांड (सीडी पहले, इसलिए बैकअप उस निर्देशिका के सापेक्ष है):
cd /folder_to_backup
tar --exclude='./folder' --exclude='./upload/folder2' -zcvf /backup/filename.tgz .
--exclude
पहले होना जरूरी नहीं है, लेकिन इसे स्रोत निर्देशिका (साइगविन पर टार 1.29 के साथ परीक्षण) से पहले कहीं आना होगा।