एक रास्ता बनाना है ए tar
निर्देशिका संरचना की फ़ाइल और ए list of files
निर्देशिका संरचना के अंदर छुआ जाना जिसे आप बाद में संपीड़ित कर सकते हैं। आपको पूरी निर्देशिका संरचना बनाने की आवश्यकता नहीं है और आपके पास केवल दो फाइलें होंगी।
उसके साथ touch
आदेश [ 1 ] आप किसी फ़ाइल के संशोधन समय को अपडेट कर सकते हैं, और यदि मौजूद नहीं है तो आप एक खाली बनाएंगे ( !
)। आपके द्वारा निर्देशिका संरचना की प्रतिलिपि बनाने के बाद आप कर सकते हैं स्पर्श अंदर फाइलें।
यह स्क्रिप्ट आपकी वर्तमान निर्देशिका में फ़ाइलें (टार + txt) बना सकती है।
#!/bin/bash
HomeDir=$(pwd)
BackupDIR="Backup" # Change here
TarFileName="$HomeDir/Directory_Structure.tar"
ListFileName="$HomeDir/File_List.txt"
cd "$BackupDIR"
tar -cf "$TarFileName" --no-recursion --files-from <(find . -type d)
find . -type f -exec echo touch \"{}\" \; > "$ListFileName"
gzip --best "$ListFileName" "$TarFileName" # this to compress them
फिर उन्हें पुनर्स्थापित निर्देशिका से अपनी दो फ़ाइलों के साथ निकालने के लिए आप अंदर लिख सकते हैं
tar -zxf Directory_Structure.tar.gz
zcat File_List.txt.gz | /bin/bash
ध्यान दें कि ऐसी मान्यताएँ हैं जिनका आप निर्माण समय, स्वामित्व और फाइलों की विशेषताओं की परवाह नहीं करते हैं, कि आपके नाम पैथोलॉजिकल नहीं हैं, आपके पास कोई लिंक नहीं है ...
एक और तरीका है एक बनाने के लिए निर्देशिका और संरचना की स्थानीय प्रति । उसके बाद फिर से आप निर्देशिका संरचना की प्रतिलिपि बना सकते हैं स्पर्श अंदर फाइलें।
फिर आप सभी के साथ बैकअप कर सकते हैं tar
।
नुकसान क्या वह मूल रचना है & amp; संशोधन के समय, स्वामित्व और विशेषताएँ खो जाएँगी। यदि आवश्यक हो तो आपको मैन्युअल रूप से डालना होगा, और यह आपकी स्क्रिप्ट को जटिल करेगा। ( touch -d "$(date -R -r filename)" Restore/filename
...)
यदि आपके पास आरामदायक नहीं है तो आपको बहुत सारे इनोड की आवश्यकता होगी zillions फाइलें।
एक अच्छी बात यह है कि आप स्थानीय निर्देशिका संरचना की प्रतिलिपि एक बुद्धिमान तरीके से बना सकते हैं (के माध्यम से) tar
या rsync
उदाहरण के लिए; सही विकल्पों के साथ यह सभी कुछ विकृति विज्ञान की देखभाल भी करेगा)।