मैं निम्नलिखित कमांड का उपयोग करने के बाद,
pngString="$(cat example.png)"
echo -n "$pngString" > tmp.png
मैं PNG फ़ाइल के रूप में tmp.png नहीं खोल सकता। शायद कुछ जानकारी खो जाती है जब मैं $pngString
छवि फ़ाइल को संग्रहीत करने के लिए उपयोग करता हूं ।
तो सवाल यह है: मैं बैश स्क्रिप्ट में एक चर का उपयोग करके पूरी छवि जानकारी कैसे संग्रहीत कर सकता हूं?
cat
और echo
इसके सभी ilk हृदय पाठ उपयोगिताओं में हैं। उन्हें द्विआधारी फाइलों पर बिना सोचे-समझे ढीला करने से अप्रत्याशित परिणाम होंगे। इसलिए चीजों base64
का आविष्कार किया गया था।
cat example.png > tmp.png
या बेहतर क्यों नहीं cp example.png tmp.png
?
cat
वास्तव में एक पाठ उपयोगिता नहीं है। यह कमांड सबस्टेशन है (जो न्यूलाइन्स को पीछे छोड़ता है), वैरिएबल असाइनमेंट (जिसमें शून्य बाइट्स नहीं हो सकते हैं) और echo
कमांड (जो बैकस्लैश सीक्वेंस की व्याख्या कर सकते हैं) जो कि बाइनरी को मेनल करेगा, नहीं cat
। लेकिन मैं आपके समग्र बिंदु से सहमत हूं।