एक बड़ी फाइल को छोटे टुकड़ों में तोड़ें


65

मैं लगभग 500 एमबी की छोटी फ़ाइलों में एक बड़ी, 4 जीबी फ़ाइल कैसे तोड़ता हूं ।

और मैं मूल फ़ाइल प्राप्त करने के लिए उन्हें फिर से कैसे इकट्ठा करूं?


2
पाठ पंक्ति-वार संस्करण: stackoverflow.com/questions/2016894/…
Ciro Santilli 新疆:::

जवाबों:


79

आप विभाजन और बिल्ली का उपयोग कर सकते हैं ।

उदाहरण के लिए कुछ

$ split --bytes 500M --numeric-suffixes --suffix-length=3 foo foo.

(जहां इनपुट फ़ाइल नाम है fooऔर अंतिम तर्क आउटपुट उपसर्ग है)। यह फ़ाइलों की तरह पैदा करेगा foo.000 foo.001...

छोटे विकल्पों के साथ एक ही कमांड:

$ split -b 100k -d -a 3 foo foo

यदि आप इसे बाइट्स की सटीक संख्या के बजाय लाइन सीमाओं पर विभाजित करना चाहते हैं, तो आप "--लाइन-बाइट्स" भी निर्दिष्ट कर सकते हैं।

उत्पन्न टुकड़ों को फिर से इकट्ठा करने के लिए आप फिर से उपयोग कर सकते हैं जैसे:

$ cat foo.* > foo_2

(यह मानते हुए कि शेल शेल ग्लोबिंग के परिणामों को क्रमबद्ध करता है - और भागों की संख्या तर्कों के सिस्टम निर्भर सीमा से अधिक नहीं होती है)

आप परिणाम की तुलना कर सकते हैं:

$ cmp foo foo_2
$ echo $?

(जिसका उत्पादन 0 होना चाहिए)

वैकल्पिक रूप से, आप टुकड़ों को फिर से इकट्ठा करने के लिए खोज / सॉर्ट / xargs के संयोजन का उपयोग कर सकते हैं:

$ find -maxdepth 1 -type f -name 'foo.*'  | sort | xargs cat > foo_3

2
इस कमांड को आज़माएं:man split cat md5sum
केविन एम।

6
कोडांतरण करते समय, मैं सलाह देता हूं कि अंतिम अपेक्षित टुकड़ा cat foo.{000..NNN}कहां NNNहै। इस तरह से आपको एक त्रुटि संदेश मिलता है यदि कोई एक टुकड़ा गायब है। लेकिन ध्यान दें कि -dसंख्यात्मक प्रत्यय GNU विभाजन के लिए विशिष्ट है; दूसरे प्लेटफार्म पर आप के साथ क्या करना है foo.aaa, foo.aabआदि
गाइल्स

1
और ध्यान रखें कि, splitKB = 1000, K = 1024, MB = 1000 * 1000, M = 1024 * 1024 आदि के लिए
Zorawar

1
इस नहीं करना चाहिए ... cat > foo_3हो ... cat >>foo_3?
alk

1
यदि आप एक उपयोगिता का उपयोग करके दर्द को कम करने का निर्णय लेते हैं। rarऔर 7zipअक्सर क्रॉस-प्लेटफ़ॉर्म को फिर से इकट्ठा करने के लिए इस तरह के विभाजन को आसान बनाने में उपयोग किया जाता है
infixed

4

अगर आप GUI पसंद करते हैं तो आप आर्काइव मैनेजर के साथ भी ऐसा कर सकते हैं। 'सेव-> अन्य विकल्प-> स्प्लिट्स ऑफ वॉल्यूम' के तहत देखें।


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