क्षमा करें, लेकिन यह संभव नहीं है। फ़ाइल से bar
ही:
Synopsis:
'bar' works just like 'cat', but shows a progress bar in ASCII art on stderr.
The script's main function is meant to be usable in any Bourne shell to be
suitable for install scripts without the need for any additional tool.
समस्या यह है कि, प्रगति पट्टी को प्रदर्शित करने के लिए, bar
पहले फ़ाइल का आकार जानना होगा।
के लिए निकालने एक archieve, कि कोई समस्या नहीं है: अगर backup.tar
है 100 MiB
बड़ा और 50 MiB
अब तक संसाधित किया गया है, हम पर हैं 50 %
।
हालांकि, एक आर्चिव बनाने के लिए , से bar
पढ़ता है stdin
, जो सभी व्यावहारिक उद्देश्यों के लिए अनंत है। जैसा कि प्रलेखन कहता है:
अनंत धाराएँ अच्छी नहीं हैं: बार केवल 0% और 100% पर प्रदर्शित होता है। [...]
बैकअप प्रयोजनों के लिए प्रगति बार प्रदर्शित करने का एकमात्र तरीका मैं ( बार के साथ टार के एक कस्टम संस्करण को संकलित करने के अलावा ) है:
फ़ाइलों के संचित आकार की गणना करें /media/data
।
एक-एक करके backup.tar
फाइल बनाएं और अपग्रेड करें /media/data
।
प्रत्येक फ़ाइल के बाद, वर्तमान प्रतिशत की गणना करें और इसे प्रदर्शित करें।
gzip backup.tar
(आप इसके लिए उपयोग कर सकते हैं tar
)।
उदाहरण:
TOTAL=$(du -b /media/data | grep -oP "^\d+")
CURRENT=0
echo "Archiving:"
IFS="
"
for FILE in $(find /media/data -type f); do
tar rf backup.tar $FILE
CURRENT=$(($CURRENT+$(du -b $FILE | grep -oP "^\d+")))
echo -en "\r"$((100*($CURRENT-1)/$TOTAL+1))"%"
done
echo
echo "Compressing:"
bar backup.tar | gzip > backup.tar.gz
rm backup.tar
सावधान:
- यह शायद आपकी बैकअप प्रगति को धीमा कर देगा।
- फ़ाइल नाम में नई वर्ण नहीं हो सकती हैं।