ASCII बनाम बाइनरी बनाम ऑटो?


16

मैं सर्वरों के बीच फाइलें स्थानांतरित कर रहा हूं और अभी-अभी यह देखना शुरू किया है कि उनमें से कुछ को एक लंबी निरंतर रेखा के रूप में संशोधित किया जा रहा है, जो मूल रूप से उनके पास रिटर्न और लाइन-ब्रेक होने का विरोध करता है। मैं यह मान रहा हूं कि मेरे एफ़टीपी क्लाइंट के स्थानांतरण-प्रकार के साथ कुछ करना है जो मूल रूप से "ऑटो", लेकिन "बाइनरी" और "एएससीआईआई" को अतिरिक्त विकल्पों के रूप में सेट किया गया था।

संक्षेप में, एक फ़ाइल को एक सर्वर से दूसरे सर्वर में स्थानांतरित करने के तरीकों में क्या अंतर हैं, और क्या ये अंतर फ़ाइल को इस तरह से संशोधित करने में सक्षम होंगे जैसा कि मैंने ऊपर उल्लेख किया है?

स्थानांतरित से विंडोज के लिए लिनक्स।

जवाबों:


27

एफ़टीपी प्रतियों की "बाइनरी" ट्रांसफर मोड बिल्कुल फाइलों को बाइट करता है। सरल और सीधा।

विभिन्न ऑपरेटिंग सिस्टमों के बीच टेक्स्ट फाइल लाने के दौरान, यह वह नहीं हो सकता जो आप चाहते हैं - अलग-अलग ऑपरेटिंग सिस्टम लाइन ब्रेक का प्रतिनिधित्व करने के लिए विभिन्न कोड का उपयोग करते हैं। "ASCII" मोड इस उद्देश्य के लिए मौजूद है: यह स्वचालित रूप से स्रोत लाइन के गंतव्य से गंतव्य के लिए सभी लाइन अंत का अनुवाद करता है।

"ऑटो" के बारे में निश्चित नहीं है, लेकिन मुझे लगता है कि यह दिखता है कि फ़ाइल का विस्तार या यह तय करने के लिए कुछ समान है कि क्या यह एक पाठ फ़ाइल है, और उचित मोड का अनुमान लगाने की कोशिश करता है।

आप कौन सी विधा चाहते हैं यह इस बात पर निर्भर करता है कि आप फ़ाइलों के साथ क्या कर रहे हैं ... यदि आप उन्हें कॉपी करने के लिए उन्हें कॉपी कर रहे हैं, तो आप शायद बाइनरी मोड में कॉपी करना चाहते हैं, इसलिए जब वे बिल्कुल समान होंगे आप बाद में उन्हें फिर से विंडोज़ सर्वर पर पुनर्स्थापित करें। यदि उन्हें पाठ फ़ाइलों (शायद क्रॉस-प्लेटफ़ॉर्म प्रोग्राम के लिए कॉन्फ़िगर फ़ाइलों के रूप में) के रूप में उपयोग करने की आवश्यकता है, तो आप उन्हें अनुवाद करने के लिए ASCII मोड का उपयोग करना चाहेंगे।

संपादित करें: जहाँ तक मैं बता सकता हूँ, विंडोज से लिनक्स के लिए FTP फ़ाइलों को कभी भी लाइन ब्रेक गायब नहीं होना चाहिए ... हालाँकि , यदि आप उन्हें ASCII मोड में कॉपी करते हैं, और फिर उन्हें बाइनरी मोड, लिनक्स में विंडोज सर्वर पर वापस लाते हैं। -स्टाइल लाइन एंडिंग को विंडोज बॉक्स पर मान्यता नहीं दी जा सकती है। (नोटपैड उन्हें नहीं देखेगा; वर्डपैड अन्य सॉफ्टवेयर के साथ वाईएमएमवी।)

(आज, इस तरह की सुविधा - लाइन एंडिंग को स्वचालित रूप से परिवर्तित करना - एफ़टीपी जैसे बुनियादी प्रोटोकॉल में अजीब लग सकता है। जब एफ़टीपी का आविष्कार किया गया था, हालांकि, टेक्स्ट फाइलें भेजना आदर्श था, और प्रोटोकॉल का एक लक्ष्य बनाना था। यह जितना संभव हो उतना आसान है।)


दोनों का शानदार वर्णन। मुझे अब बहुत कम उलझन महसूस होती है।
सैम्पसन

धन्यवाद, मैं उस ASCII मोड के बिंदु को कभी नहीं समझता, और अब मैं निश्चित रूप से केवल बाइनरी मोड का उपयोग करूंगा
किवी

3

वास्तव में मतभेद हैं, और जब तक आप द्विआधारी विकल्प का उपयोग नहीं करते हैं, तब तक वे आपके गैर-सादे-पाठ फ़ाइल स्थानांतरण के साथ खिलवाड़ करेंगे - आम तौर पर हमेशा ठीक का उपयोग करें :)


क्या उन्हें बहाल करने का कोई तरीका नहीं है? या क्या मुझे भविष्य में फिर से बचने के लिए अब बाइनरी के साथ स्थानांतरण करने की आवश्यकता है?
सैमप्सन

मुझे यकीन है कि आप उन्हें अनपिक कर सकते हैं, लेकिन इसमें लंबा समय लग सकता है, मैं दृढ़ता से उन्हें पीछे हटाना चाहूंगा।
चॉपर 3

1

आप किस ऑपरेटिंग सिस्टम से फाइल को / से स्थानांतरित कर रहे हैं? लिनक्स / यूनिक्स अलग-अलग लाइन ब्रेक का उपयोग करते हैं फिर विंडोज। इसलिए यदि आप एक लिनक्स कंप्यूटर पर एक फ़ाइल उत्पन्न करते हैं और इसे खिड़कियों पर खोलते हैं तो यह अजीब लग सकता है। मेरे अनुभव में हालांकि इसे सही करने के लिए उपयोगिताओं हैं यदि आप नोटपैड के बजाय विंडोज़ पर वर्डपैड का उपयोग करते हैं तो आप ठीक हो जाएंगे।


मैं इन्हें एक IDE में विंडोज़ पर लिख रहा हूँ, और फिर उन्हें linux सर्वर पर ले जा रहा हूँ। बाद की तारीख में, मैं उन्हें लाइन सर्वर से लंबी निरंतर लाइन खोजने के लिए खोल देता हूं।
सैमप्सन

दौड़ने की कोशिश करें dos2unixऔर देखें कि क्या यह लाइनों को सही करता है
आइंस्टीन 16

1

विंडोज और यूनिक्स में लाइनों के अंत में अलग-अलग बाइट्स हैं (विंडोज एक 0D 0A हेक्स, यूनिक्स सिर्फ एक 0A)। बाइनरी मोड में फ़ाइलों को स्थानांतरित करते समय, एक फ़ाइल के बाइट्स को अपरिवर्तित एक कंप्यूटर से स्थानांतरित किया जाएगा। यह बाइनरी फॉरमेट के लिए आवश्यक है (उदाहरण के लिए ज़िप फाइलें, इमेज आदि), लेकिन टेक्स्ट फ़ाइलों के साथ समस्याएँ पैदा कर सकता है: जैसे कि विंडोज पर eep notadad। Windows शैली देखते समय हर पंक्ति के अंत में ^ M दिखा सकते हैं।

तो तकनीकी रूप से द्विआधारी प्रारूपों (ज़िप, जेपीजी, पीएनजी, और अंतहीन अन्य) के लिए आपको एफ़टीपी बायिनरी सेट करने की आवश्यकता है, जबकि पाठ प्रारूपों (एचटीएमएल, पीएचपी, सीजीआई, आदि) के लिए आपको इसे एएससीआईआई पर सेट करने की आवश्यकता है।

अधिकांश अच्छे एफ़टीपी कार्यक्रमों में एक ऑटो सेटिंग भी होती है, जिसका अर्थ है कि वे अच्छी तरह से ज्ञात फ़ाइल एक्सटेंशन के आधार पर मोड (BINARY या ASCII) का निर्धारण करेंगे, जैसे यह स्वचालित रूप से JPG फ़ाइल को BINARY पर स्थानांतरित करेगा और ASCII में एक PHP फ़ाइल भेजेगा / प्राप्त करेगा। मोड।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.