क्या डॉस कॉपी कमांड का उपयोग करके फ़ाइलों को कुशलता से जोड़ने का एक तरीका है?


5

फ़ाइलों को संक्षिप्त करने के लिए डॉस कॉपी कमांड सिंटैक्स का उपयोग करना:

copy file1.txt+file2.txt all.txt

मैं जानता हूँ मैं यह कर सकता हूँ...

copy file1.txt+file2.txt file1.txt

क्या यह कुशल है? क्या यह वही है जो मैं उम्मीद कर रहा हूं? यह काम करता है, लेकिन मैं यह जानना चाहता हूं कि क्या यह वास्तव में file1.txt में संलग्न है या क्या यह file1.txt (खराब) की नकल कर रहा है, file2 को संक्षिप्त कर रहा है और फिर file1.txt (जो कुशल नहीं है) का नाम बदल रहा है?


2
एक साइड नोट के रूप में, याद रखें कि आपको "/ b" स्विच का उपयोग करने की आवश्यकता है यदि आप कभी भी कैट बाइनरी फ़ाइलों को कॉपी का उपयोग करने का निर्णय लेते हैं।
ब्रायन नोब्लुच जुएल

1
यहां किसी को भी यह नहीं लगता है कि "विशाल फ़ाइलों" का मामला समाधान करने या देने के लायक है।
मिलिंद आर

जवाबों:


9

copyनकल कर रहा है file1.txtऔर file2.txtस्मृति में है, उन्हें फिर से लिखना file1.txt। यह एक नई फ़ाइल की नकल नहीं है, तो उस फ़ाइल का नाम बदलकर वास्तव में बहुत अधिक डिस्क I / O नहीं है।

आप भी इस्तेमाल कर सकते हैं type

type file2.txt >> file1.txt

>>ऑपरेटर पाठ जोड़ देता है। लेकिन, निश्चित रूप से, बाइनरी फ़ाइलों के लिए काम नहीं करेगा।


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

1
मैं इस शब्द का उपयोग बहुत ही शिद्दत से कर रहा था। अगर file1 और file2 बहुत बड़ी फाइलें हैं, तो मैं चाहता हूं कि file1 किसी भी file1 डेटा की नकल किए बिना file1 में संलग्न हो (यह फिर से कॉपी करने के लिए बहुत बड़ा है)। टायलर, आपने सुझाव दिया है कि यह file1.txt डेटा की नकल करेगा। प्रकार कमांड का उपयोग करना, यह वास्तव में संलग्न करेगा? धन्यवाद।
18st में 18

चेतावनी दी जाती है, हालांकि पुराने DOS संस्करण लक्ष्य स्रोत को कॉपी स्रोत + otherfile स्रोत के साथ कॉपी करने में विफल रहे। इसका परिणाम 64 kB स्रोत फ़ाइल के रूप में हुआ क्योंकि 64 kB बफर का उपयोग पढ़ने और लिखने के लिए किया गया था, और पहले फ्लश के बाद, स्रोत सिर्फ 64 kB था :-) कोई मज़ाक नहीं।
TheBlastOne

1
> कॉपी कॉपी कर रहा है ... स्मृति में, उन्हें concatenating तो बाहर file1.txt के लिए लेखन। यह एक नई फ़ाइल की नकल नहीं है, तो उस फ़ाइल का नाम बदलकर वास्तव में बहुत अधिक डिस्क I / O नहीं है। यह छोटी फ़ाइलों के लिए सही हो सकता है, लेकिन किसी भी महत्वपूर्ण आकार की फ़ाइलों के लिए निश्चित रूप से सच नहीं है। क्या होगा अगर दो फाइलें विशाल हैं? एक परीक्षण करें और आप देखेंगे कि मेमोरी का उपयोग पुनर्निर्देशन के दौरान नहीं होता है । इसलिए यह उन्हें स्मृति में नहीं मिला रहा है। और निश्चित रूप से यह उन्हें दो मूल फ़ाइल को संयोजित नहीं कर सकता है क्योंकि इसे पढ़ना समाप्त नहीं हुआ है, इसलिए यह एक अस्थायी फ़ाइल / पाइप का उपयोग कर रहा है।
23

2

क्या यह कुशल है?

ज़रूर। हालाँकि, /bस्विच का उपयोग करके / फाइल के प्रसंस्करण के बजाय बस बाइट्स को व्यवस्थित करके प्रदर्शन को बढ़ा सकता है। यह विशेष रूप से ध्यान देने योग्य है जब बहुत बड़ी पाठ फ़ाइलों को संक्षिप्त करना।

क्या यह वही है जो मैं उम्मीद कर रहा हूं?

आमतौर पर हाँ, लेकिन अगर फ़ाइल को अलग-अलग फ़ाइल- / लाइन-टर्मिनेटर के साथ लिनक्स, मैक या अन्य सिस्टम में बनाया गया था, तो यह अप्रत्याशित परिणाम दे सकता है। /bपाठ फ़ाइलों के लिए, सामान्य रूप से स्विच का उपयोग करना एक अच्छा विचार है ।

मैं जानना चाहता हूं कि क्या यह वास्तव में file1.txt के लिए अपील कर रहा है या यह file1.txt (खराब) की नकल कर रहा है, file2 को संक्षिप्त कर रहा है और फिर file1.txt (जो कुशल नहीं है) का नाम बदल रहा है?

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


0

यदि वे उसी विस्तार के हैं तो आप ऐसा कर सकते हैं -

टाइप करें *.txt >> fileout.tmp

फिर fileout.tmpउचित विस्तार के लिए नाम बदलें ।

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