यह कमांड डेटापैकर है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर में से एक का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।
कार्यक्रम:
नाम
डेटापैकर - फाइलों को न्यूनतम संख्या में डिब्बे में पैक करने का उपकरण
SYNOPSIS
डेटापैकर [ -0 ] [ -a कार्य ] [ -b FORMAT ] [ -d ] [ -p ] [ -S SIZE ] -s SIZE फ़ाइल ...
डेटापैकर -h | --मदद
वर्णन
डेटापैकर फ़ाइलों को आकार के अनुसार समूहित करने का एक उपकरण है। यह फ़ाइलों को समूहबद्ध करने के लिए डिज़ाइन किया गया है जैसे कि वे
कम से कम कंटेनरों का उपयोग करके निश्चित आकार के कंटेनर (जिन्हें "डिब्बे" कहा जाता है) भरें। इस
उपयोगी है, उदाहरण के लिए, यदि आप सीडी या डीवीडी में कई फाइलों को संग्रहित करना चाहते हैं, और चाहते हैं
उन्हें इस तरह व्यवस्थित करने के लिए कि आप सीडी या डीवीडी की न्यूनतम संभव संख्या का उपयोग करें।
कई मामलों में, डेटापैकर लगभग तुरंत निष्पादित करता है। विशेष रूप से ध्यान दें,
हार्डलिंक क्रिया (नीचे विकल्प देखें) का उपयोग डेटा को प्रभावी ढंग से बिन में कॉपी करने के लिए किया जा सकता है
वास्तव में डेटा को बिल्कुल कॉपी करना।
डेटापैकर पारंपरिक यूनिक्स शैली में एक उपकरण है; इसका उपयोग पाइपों में किया जा सकता है और अन्य को कॉल कर सकते हैं
टूल्स तक पहुँच प्रदान करता है|
विकल्प
यहां कमांड-लाइन विकल्प दिए गए हैं जिनके लिए आप सेट कर सकते हैं डेटापैकर। कृपया ध्यान दें कि -s पर और
कम से कम एक फ़ाइल (नीचे फ़ाइल विनिर्देश देखें) अनिवार्य है।
-0
--शून्य मानक इनपुट से फ़ाइलों की सूची पढ़ते समय (नीचे फ़ाइल विनिर्देश देखें),
इनपुट को एक प्रति के बजाय NULL (ASCII 0) वर्णों से अलग करने की अपेक्षा करें
रेखा। के साथ विशेष रूप से उपयोगी खोज -प्रिंट0.
-a कार्य
--क्रिया =कार्य
परिभाषित करता है कि मैचों के साथ क्या कार्रवाई करनी है। कृपया ध्यान दें कि किसी भी कार्रवाई के साथ,
आउटपुट को बिन द्वारा क्रमबद्ध किया जाएगा, पहले बिन 1 के साथ। संभावित क्रियाओं में शामिल हैं:
छाप प्रति फ़ाइल एक मानव-पठनीय लाइन प्रिंट करें। प्रत्येक पंक्ति में बिन संख्या होती है
(द्वारा दिए गए प्रारूप में -b), एक ASCII टैब वर्ण, फिर फ़ाइल नाम।
प्रिंटफुल
प्रति बिन एक अर्ध-मानव-पठनीय लाइन प्रिंट करें। प्रत्येक पंक्ति में बिन होता है
संख्या, फिर ASCII टैब के साथ उस बिन में रखने के लिए फ़ाइल नामों की एक सूची
चरित्र बिन संख्या के बाद और प्रत्येक फ़ाइल नाम के बीच।
print0 प्रत्येक फ़ाइल के लिए, बिन नंबर आउटपुट करें (द्वारा दिए गए प्रारूप के अनुसार -b),
एक ASCII NULL वर्ण, फ़ाइल नाम, और दूसरा ASCII NULL वर्ण।
xargs -0 -L 2 के साथ प्रयोग के लिए आदर्श।
निष्पादन:कमान
प्रत्येक फ़ाइल के लिए, निर्दिष्ट COMMAND को शेल के माध्यम से निष्पादित करें। कार्यक्रम
COMMAND को इसकी कमांड लाइन पर नीचे बताए अनुसार जानकारी दी जाएगी।
यदि किसी दिए गए बिन के लिए जनरेट की गई कमांड लाइन बहुत बड़ी है तो यह एक त्रुटि है
प्रणाली के लिए
किसी भी COMMAND से एक गैर-शून्य निकास कोड का कारण होगा डेटापैकर निष्कासित करना। अगर
COMMAND में उद्धरण हैं, संपूर्ण कमांड को उद्धृत करना न भूलें, जैसे:
डेटापैकर '--एक्शन = निष्पादन: गूंज "बिन: $ 1"; खिसक जाना; एलएस "$@"'
दिए गए आदेश के तर्क होंगे:
· argv[0] (खोल में $0) उस शेल का नाम होगा जिसका उपयोग का आह्वान करने के लिए किया जाता है
कमांड -- $SHELL या /bin/sh.
· argv[1] (शेल में $1) बिन नंबर होगा, जिसे के अनुसार स्वरूपित किया जाएगा -b.
· argv[2] और चालू ($2 और शेल में) उस बिन में रखने के लिए फ़ाइलें होंगी
हार्डलिंक
प्रत्येक फ़ाइल के लिए, यहां पर एक हार्डलिंक बनाएं बिन/फ़ाइल का नाम मूल की ओर इशारा करते हुए
इनपुट फ़ाइल नाम। निर्देशिका बनाता है बिन जैसा आवश्यक हो। विकल्प
स्थानों और प्रारूपों के लिए बिन के साथ निर्दिष्ट किया जा सकता है -b. सभी बिन निर्देशिका
और सभी इनपुट एक ही फाइल सिस्टम पर रहने चाहिए।
बिन के परिणामों को संसाधित करने के बाद, आप सुरक्षित रूप से हटा सकते हैं
मूल डेटा को हटाए बिना डिब्बे। वैकल्पिक रूप से, आप छोड़ सकते हैं
डिब्बे और मूल डेटा हटाएं। कोई भी दृष्टिकोण काम करने योग्य होगा।
फाइल सिस्टम में हार्ड लिंक बनाने का प्रयास करना, या होना एक त्रुटि है
अलग-अलग पथों में एक ही फ़ाइल नाम वाली दो इनपुट फ़ाइलें। डेटापैकर मर्जी
इन स्थितियों में से किसी एक पर बाहर निकलें।
यह भी देखें --डीप-लिंक.
सिमलिंक
पसंद हार्डलिंक, लेकिन इसके बजाय सिम्लिंक बनाएं। सिम्लिंक फाइल सिस्टम का विस्तार कर सकते हैं,
लेकिन यदि आप मूल (प्री-बिन) डेटा हटाते हैं तो आप जानकारी खो देंगे।
पसंद हार्डलिंक, एकल फ़ाइल नाम का एकाधिक में होना एक त्रुटि है
इस विकल्प के साथ इनपुट निर्देशिका।
यह भी देखें --डीप-लिंक.
-b FORMAT
--binfmt=FORMAT
बिन नाम के आउटपुट स्वरूप को परिभाषित करता है। यह प्रारूप %d इनपुट के रूप में दिया गया है
एक फ़ंक्शन जो इसकी व्याख्या करता है printf(3) होगा। यह दोनों के लिए उपयोगी हो सकता है
अपने डिब्बे के नाम और स्थान को परिभाषित करें। दौड़ते समय डेटापैकर साथ में
कुछ तर्क, बिन प्रारूप को एक निर्देशिका के रूप में लिया जा सकता है जिसमें फ़ाइलें
कि बिन जुड़े हुए हैं। डिफ़ॉल्ट% 03d है, जो अग्रणी के साथ पूर्णांकों को आउटपुट करता है
सभी बिन नाम कम से कम तीन वर्णों को चौड़ा करने के लिए शून्य।
अन्य उपयोगी रूपों में "destdir/" स्ट्रिंग डालने के लिए destdir/%d शामिल हो सकता है
बिन नंबर के सामने, जो बिना अग्रणी शून्य के प्रस्तुत किया जाता है।
-d
- दाढ़
डिबग मोड सक्षम करें। यह भविष्य के विस्तार के लिए यहां है और वर्तमान में नहीं है
कोई प्रभाव।
-D
--डीप-लिंक
जब सभी लिंक बनाने के बजाय सिमलिंक या हार्डलिंक क्रिया के साथ प्रयोग किया जाता है a
बिन के तहत एकल फ्लैट निर्देशिका, के तहत स्रोत निर्देशिका संरचना की नकल करें
बिन। के साथ प्रयोग किए जाने पर सबसे अधिक समझ में आता है -p, लेकिन इसके बिना भी उपयोगी हो सकता है यदि
विभिन्न स्रोत निर्देशिकाओं में समान नाम वाली फ़ाइलें हैं।
--मदद संक्षिप्त उपयोग जानकारी प्रदर्शित करें और बाहर निकलें।
-p
--संरक्षित-आदेश
सामान्य रूप से, डेटापैकर एक कुशल एल्गोरिदम का उपयोग करता है जो फाइलों को पुनर्व्यवस्थित करने का प्रयास करता है जैसे
कि आवश्यक डिब्बे की संख्या कम से कम हो। कभी-कभी आप इसके बजाय चाह सकते हैं
संभावित रूप से अधिक डिब्बे का उपयोग करने की कीमत पर फाइलों के क्रम को सुरक्षित रखें। में
इन मामलों में, आप इस विकल्प का उपयोग करना चाहेंगे।
ऐसी स्थिति के उदाहरण के रूप में: शायद आपने एक दिन में एक तस्वीर ली हो
कई साल। आप इन तस्वीरों को सीडी में संग्रहित करना चाहते हैं, लेकिन आप उन्हें चाहते हैं
कालानुक्रमिक क्रम में संग्रहित किया जाना चाहिए। आपने फाइलों का नाम इस तरह रखा है कि नाम
आदेश इंगित करें, ताकि आप फ़ाइल सूची को पास कर सकें डेटापैकर का उपयोग -p सम्भाल कर रखना
आपके डिब्बे में आदेश। इस प्रकार, बिन 1 में सबसे पुरानी फाइलें होंगी, बिन 2
दूसरा सबसे पुराना, और इसी तरह। अगर -p उपयोग नहीं किया गया था, आप कम सीडी का उपयोग कर सकते हैं, लेकिन
तस्वीरें आपके कालानुक्रमिक को संरक्षित किए बिना सभी सीडी में फैला दी जाएंगी
आदेश.
-s SIZE
--आकार=SIZE
प्रत्येक बिन का आकार बाइट्स में देता है। प्रत्यय जैसे "k", "m", "g", आदि हो सकते हैं
किलोबाइट्स, मेगाबाइट्स, गीगाबाइट्स आदि को इंगित करने के लिए उपयोग किया जाता है। नंबर जैसे
1.5g मान्य हैं, और यदि आवश्यक हो, तो इसे निकटतम संभावित पूर्णांक में पूर्णांकित किया जाएगा
मूल्य.
पहले बिन के आकार को ओवरराइड किया जा सकता है -S.
यहां कुछ सामान्य रूप से उपयोग किए जाने वाले डिब्बे के आकार दिए गए हैं। प्रत्येक आइटम के लिए, मैंने आपको प्रदान किया है
डिस्क की अंतर्निहित रिकॉर्डिंग क्षमता और इसके लिए सुझाए गए मान दोनों के साथ
-s. के लिए सुझाया गया मान -s अंतर्निहित क्षमता से कम है क्योंकि वहाँ
डिस्क पर संग्रहीत फाइल सिस्टम द्वारा ओवरहेड लगाया जाता है। आप शायद पाएंगे
के लिए सुझाया गया मान -s कुछ डिस्क वाली डिस्क के लिए इष्टतम से कम है
बड़ी फ़ाइलें, और उन डिस्क के लिए वांछित से अधिक जिनमें बड़ी मात्रा में छोटे होते हैं
फाइलें.
सीडी-रोम, 74-मिनट (मानक): 650 मी / 600 मी
सीडी-रोम, 80-मिनट: 703मी / 650मी
सीडी-रोम, 90-मिनट: 790मी / 740मी
सीडी-रोम, 99-मिनट: 870मी / 820मी
· डीवीडी+-आर: 4.377 ग्राम/4 ग्राम
· DVD+R, दोहरी परत: 8.5g / 8g
-S
--आकार-प्रथम
पहले डिब्बे का आकार। यदि नहीं दिया गया है, तो दिए गए मान के साथ चूक करता है -s.
यह उपयोगी हो सकता है यदि आप बाहर एक तंत्र का उपयोग कर रहे होंगे डेटापैकर जोड़ने के लिए
पहले बिन के लिए अतिरिक्त जानकारी: शायद एक सूचकांक जिसमें बिन है जो
फ़ाइल, सीडी को बूट करने योग्य बनाने के लिए आवश्यक जानकारी, आदि। आप इसका उपयोग कर सकते हैं
साथ के रूप में प्रत्यय -s इस विकल्प के साथ।
--सॉर्ट उन पर कार्रवाई करने से पहले संसाधित करने के लिए फ़ाइलों की सूची को क्रमबद्ध करता है। के साथ संयुक्त होने पर -p,
आउटपुट को सॉर्ट करने का कारण बनता है। CPU को बढ़ाने के अलावा इस विकल्प का कोई प्रभाव नहीं है
उपयोग जब के साथ संयुक्त नहीं है -p.
फ़ाइल विनिर्देशन
विकल्पों के बाद, आपको डिब्बे में पैकिंग के लिए विचार करने के लिए एक या अधिक फाइलों की आपूर्ति करनी होगी।
वैकल्पिक रूप से, कमांड लाइन पर फाइलों को सूचीबद्ध करने के बजाय, आप एक हाइफ़न सूचीबद्ध कर सकते हैं
(-), जो बताता है डेटापैकर मानक इनपुट (stdin) से फाइलों की सूची पढ़ने के लिए।
डेटापैकर उपनिर्देशिकाओं में कभी भी पुनरावृत्ति नहीं होती है। यदि आप पुनरावर्ती खोज चाहते हैं -- खोज
किसी दी गई निर्देशिका और उसकी सभी उपनिर्देशिकाओं की सभी फ़ाइलें -- में दूसरा उदाहरण देखें
उदाहरण अनुभाग नीचे। डेटापैकर के साथ एकीकृत करने के लिए डिज़ाइन किया गया है खोज(1) इसमें
स्थिति आपको खोज के अंतर्निहित शक्तिशाली रिकर्सन और फ़िल्टरिंग का लाभ उठाने देती है
विशेषताएं।
मानक इनपुट से फ़ाइलें पढ़ते समय, यह माना जाता है कि सूची में एक विशिष्ट है
प्रति पंक्ति फ़ाइल नाम। अनुभवी POSIX दिग्गज इसमें निहित सीमाओं को पहचानेंगे
यह प्रारूप। इस कारण से, जब दिया गया -0 एकल फ़ाइल के संयोजन के साथ -,
डेटापैकर इसके बजाय, मानक इनपुट पर, फाइलों की एक सूची, प्रत्येक को समाप्त करने की अपेक्षा करेगा
एक ASCII NULL वर्ण। ऐसी सूची को आसानी से तैयार किया जा सकता है खोज(1) इसका उपयोग करना
-प्रिंट0 विकल्प.
उदाहरण
· सभी JPEG छवियों को इसमें डालें ~/चित्र पूर्व-मौजूदा के तहत डिब्बे में (हार्डलिंक का उपयोग करके)
डायरेक्टरी ~/बिन्स, प्रति बिन 600MB से अधिक नहीं:
डेटापैकर -बी ~/डिब्बे/%03d -s 600m -a हार्डलिंक ~/चित्र/* .jpg
· सभी फाइलें डालें ~/चित्र या उसके अंतर्गत कोई उपनिर्देशिका 600MB बिन में ~/बिन्स,
हार्डलिंकिंग का उपयोग करना। यदि आप बस एक पुनरावर्ती चाहते हैं तो यह एक सरल उदाहरण है
सभी फाइलों की खोज।
खोज ~/चित्र -टाइप एफ -प्रिंट0 |
डेटापैकर -0 -बी ~/डिब्बे/%03d -s 600m -a हार्डलिंक -
· सभी जेपीईजी छवियों को ढूंढें ~/चित्र या उसकी कोई उपनिर्देशिका, उन्हें डिब्बे में डाल दें
(हार्डलिंक का उपयोग करके) पहले से मौजूद निर्देशिका के तहत ~/बिन्स, प्रति बिन 600MB से अधिक नहीं:
खोज ~/चित्र -नाम "*.jpg" लोडिंग='आलसी' -प्रिंट0 |
डेटापैकर -0 -बी ~/डिब्बे/%03d -s 600m -a हार्डलिंक -
· ऊपर दिए गए सभी JPEG चित्र ढूंढें, उन्हें 4GB डिब्बे में रखें, लेकिन उन्हें डालने के बजाय
कहीं भी, प्रत्येक बिन के आकार की गणना करें और उसे प्रदर्शित करें।
खोज ~/चित्र -नाम "*.jpg" लोडिंग='आलसी' -प्रिंट0 |
डेटापैकर -0 -बी ~/डिब्बे/%03d -s 4g
'--action=exec:echo -n "$1:"; बदलाव; डु -च "$@" | ग्रेप टोटल'
-
यह आउटपुट को इस प्रकार प्रदर्शित करेगा:
/home/jgoerzen/bins/001: कुल 4.0G
/home/jgoerzen/bins/002: कुल 4.0G
/home/jgoerzen/bins/003: कुल 4.0G
/home/jgoerzen/bins/004: कुल 992M
नोट: इस उदाहरण में grep पैटर्न सरल है, लेकिन अप्रत्याशित परिणाम देगा यदि
किसी भी मेल खाने वाली फ़ाइल में "कुल" शब्द होता है।
· ऊपर दिए गए सभी JPEG इमेज ढूंढें, और उनमें से 600MB ISO इमेज जेनरेट करें ~/डिब्बे। इस
फ़ाइलों को कभी भी हार्डलिंक किए बिना सीधे आईएसओ छवियां उत्पन्न करेगा ~/डिब्बे।
खोज ~/चित्र -नाम "*.jpg" लोडिंग='आलसी' -प्रिंट0 |
डेटापैकर -0 -बी ~/डिब्बे/%03d.iso -s 4g
'--action=exec:BIN='$1'; बदलाव; mkisofs -r -J -o "$BIN" "$@"'
-
यदि आप चाहें, तो आप इस परिणाम को सीधे एक डीवीडी-बर्निंग एप्लिकेशन में पाइप कर सकते हैं।
या, आप एक ही चरण में DVD+R को बर्न करने के लिए ग्रोइसोफ़ का उपयोग कर सकते हैं।
त्रुटियों
यह एक त्रुटि है यदि कोई निर्दिष्ट फ़ाइल -s या -S के साथ दिए गए मान से अधिक है।
यदि कोई निर्दिष्ट फ़ाइल गायब हो जाती है तो यह भी एक त्रुटि है डेटापैकर दौड रहा है।
onworks.net सेवाओं का उपयोग करके डेटापैकर का ऑनलाइन उपयोग करें