सीपी (यूनिक्स): Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 17: Line 17:
| website                =  
| website                =  
}}
}}
[[ कम्प्यूटिंग ]] में,<code>cp</code>कंप्यूटर_फाइल # ऑपरेशंस [[कम्प्यूटर फाइल]] और [[निर्देशिका (कंप्यूटिंग)]] के लिए विभिन्न [[यूनिक्स]] और यूनिक्स जैसी [[ऑपरेटिंग सिस्टम]] में एक [[कमांड (कंप्यूटिंग)]] है। कमांड में ऑपरेशन के तीन प्रमुख तरीके हैं, जो एक फाइल को दूसरी फाइल में कॉपी करने के लिए, एक या एक से अधिक फाइलों को एक डायरेक्टरी में कॉपी करने के लिए, या पूरी डायरेक्टरी को दूसरी डायरेक्टरी में कॉपी करने के लिए प्रस्तुत किए गए तर्कों के प्रकार द्वारा व्यक्त किए जाते हैं।<ref>{{Cite web | url=https://www.man7.org/linux/man-pages/man1/cp.1.html | title=Cp(1) - Linux manual page }}</ref>
[[ कम्प्यूटिंग | कम्प्यूटिंग]] में,<code>cp</code> विभिन्न [[यूनिक्स]] और यूनिक्स जैसे [[ऑपरेटिंग सिस्टम]] में [[कम्प्यूटर फाइल]] और [[निर्देशिका (कंप्यूटिंग)]] की प्रतिलिपि बनाने के लिए [[कमांड (कंप्यूटिंग)]] है। कमांड में ऑपरेशन की तीन प्रमुख विधियाँ हैं, जो फाइल को दूसरी फाइल में कॉपी करने के लिए, या से अधिक फाइलों को डायरेक्टरी में कॉपी करने के लिए, या पूर्ण डायरेक्टरी को दूसरी डायरेक्टरी में कॉपी करने के लिए प्रस्तुत किए गए तर्कों के प्रकार द्वारा व्यक्त किए जाते हैं।<ref>{{Cite web | url=https://www.man7.org/linux/man-pages/man1/cp.1.html | title=Cp(1) - Linux manual page }}</ref>
यूटिलिटी आगे किए गए कार्यों को विस्तृत करने के लिए विभिन्न कमांड लाइन विकल्प फ्लैग को स्वीकार करती है। [[POSIX]] cp और [[GNU]] cp दो प्रमुख विनिर्देश हैं। POSIX संस्करण की तुलना में GNU cp के पास कई अतिरिक्त विकल्प हैं।<ref>{{cite web|url=https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html#cp-invocation|title=GNU Coreutils: cp invocation|website=www.gnu.org}}</ref>
 
कमांड [[ एकीकृत एक्सटेंसिबल फर्मवेयर इंटरफ़ेस ]] में भी उपलब्ध है।<ref name="EFI-Shells-and-Scripting">{{cite web
यूटिलिटी निष्पादित कार्यों का विवरण देने के लिए विभिन्न कमांड लाइन विकल्प फ़्लैग को भी स्वीकार करती है। [[POSIX|पोसिक्स]] सीपी और [[GNU|जीएनयू]] सीपी दो प्रमुख विनिर्देश हैं। पोसिक्स संस्करण की तुलना में जीएनयू सीपी के पास कई अतिरिक्त विकल्प हैं।<ref>{{cite web|url=https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html#cp-invocation|title=GNU Coreutils: cp invocation|website=www.gnu.org}}</ref>
कमांड [[ एकीकृत एक्सटेंसिबल फर्मवेयर इंटरफ़ेस |एकीकृत एक्सटेंसिबल फर्मवेयर इंटरफ़ेस]] में भी उपलब्ध है।<ref name="EFI-Shells-and-Scripting">{{cite web
  | url = http://software.intel.com/en-us/articles/efi-shells-and-scripting/
  | url = http://software.intel.com/en-us/articles/efi-shells-and-scripting/
  | title = EFI Shells and Scripting
  | title = EFI Shells and Scripting
Line 26: Line 27:
}}</ref>
}}</ref>
== इतिहास ==
== इतिहास ==
सीपी [[संस्करण 1 यूनिक्स]] का हिस्सा था।<ref name="reader">{{cite techreport |first1=M. D. |last1=McIlroy |author-link1=Doug McIlroy |year=1987 |url=http://www.cs.dartmouth.edu/~doug/reader.pdf |title=A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 |series=CSTR |number=139 |institution=Bell Labs}}</ref> का संस्करण <code>cp</code> बंडल्ड इन GNU [[coreutils]] को Torbjorn Granlund, David MacKenzie, और Jim Meyering ने लिखा था।<ref>{{Cite web|url=https://linux.die.net/man/1/cp|title=Cp(1): Copy files/Directories - Linux man page}}</ref>
सीपी [[संस्करण 1 यूनिक्स]] का हिस्सा था।<ref name="reader">{{cite techreport |first1=M. D. |last1=McIlroy |author-link1=Doug McIlroy |year=1987 |url=http://www.cs.dartmouth.edu/~doug/reader.pdf |title=A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 |series=CSTR |number=139 |institution=Bell Labs}}</ref> का संस्करण सीपी बंडल्ड इन जीएनयू [[coreutils]] को Torbjorn Granlund, David MacKenzie, और Jim Meyering ने लिखा था।<ref>{{Cite web|url=https://linux.die.net/man/1/cp|title=Cp(1): Copy files/Directories - Linux man page}}</ref>
== ऑपरेटिंग मोड ==
== ऑपरेटिंग मोड ==
cp के संचालन के तीन प्रमुख तरीके हैं। आह्वान पर कार्यक्रम में प्रस्तुत किए गए तर्कों के प्रकार और गिनती से इन तरीकों का अनुमान लगाया जाता है।
cp के संचालन के तीन प्रमुख तरीके हैं। आह्वान पर कार्यक्रम में प्रस्तुत किए गए तर्कों के प्रकार और गिनती से इन तरीकों का अनुमान लगाया जाता है।
*जब प्रोग्राम में फाइलों के पथ नामों के दो तर्क होते हैं, तो प्रोग्राम पहली फाइल की सामग्री को दूसरी फाइल में कॉपी करता है, यदि आवश्यक हो तो दूसरी फाइल बनाता है।
*जब प्रोग्राम में फाइलों के पथ नामों के दो तर्क होते हैं, तो प्रोग्राम पहली फाइल की सामग्री को दूसरी फाइल में कॉपी करता है, यदि आवश्यक हो तो दूसरी फाइल बनाता है।
* जब प्रोग्राम में फ़ाइलों के पथ नामों के एक या अधिक तर्क होते हैं और उन तर्कों का अनुसरण करते हैं जो किसी निर्देशिका के पथ के लिए होते हैं, तो प्रोग्राम प्रत्येक स्रोत फ़ाइल को गंतव्य निर्देशिका में कॉपी करता है, ऐसी कोई भी फ़ाइल बनाता है जो पहले से मौजूद नहीं है।
* जब प्रोग्राम में फ़ाइलों के पथ नामों के या अधिक तर्क होते हैं और उन तर्कों का अनुसरण करते हैं जो किसी निर्देशिका के पथ के लिए होते हैं, तो प्रोग्राम प्रत्येक स्रोत फ़ाइल को गंतव्य निर्देशिका में कॉपी करता है, ऐसी कोई भी फ़ाइल बनाता है जो पहले से मौजूद नहीं है।
*जब प्रोग्राम के तर्क दो निर्देशिकाओं के लिए पथ नाम होते हैं, तो cp स्रोत निर्देशिका में सभी फ़ाइलों को गंतव्य निर्देशिका में कॉपी करता है, आवश्यक फ़ाइलों या निर्देशिकाओं का निर्माण करता है। ऑपरेशन के इस मोड में निर्देशिकाओं की पुनरावर्ती प्रतिलिपि को इंगित करने के लिए एक अतिरिक्त विकल्प ध्वज, आमतौर पर ''आर'' की आवश्यकता होती है। यदि गंतव्य निर्देशिका पहले से मौजूद है, तो स्रोत को गंतव्य में कॉपी किया जाता है, जबकि गंतव्य मौजूद नहीं होने पर एक नई निर्देशिका बनाई जाती है।
*जब प्रोग्राम के तर्क दो निर्देशिकाओं के लिए पथ नाम होते हैं, तो सीपी स्रोत निर्देशिका में सभी फ़ाइलों को गंतव्य निर्देशिका में कॉपी करता है, आवश्यक फ़ाइलों या निर्देशिकाओं का निर्माण करता है। ऑपरेशन के इस मोड में निर्देशिकाओं की पुनरावर्ती प्रतिलिपि को इंगित करने के लिए अतिरिक्त विकल्प ध्वज, आमतौर पर ''आर'' की आवश्यकता होती है। यदि गंतव्य निर्देशिका पहले से मौजूद है, तो स्रोत को गंतव्य में कॉपी किया जाता है, जबकि गंतव्य मौजूद नहीं होने पर नई निर्देशिका बनाई जाती है।


== उपयोग ==
== उपयोग ==
Line 40: Line 41:
  cp [-fHip] [--] स्रोत फ़ाइल ... लक्ष्य निर्देशिका
  cp [-fHip] [--] स्रोत फ़ाइल ... लक्ष्य निर्देशिका


एक निर्देशिका को एक निर्देशिका में कॉपी करना (-r या -R का उपयोग किया जाना चाहिए)
एक निर्देशिका को निर्देशिका में कॉपी करना (-r या -R का उपयोग किया जाना चाहिए)
  cp -r|-R [-fHip] [--] स्रोतनिर्देशिका... लक्ष्यनिर्देशिका
  cp -r|-R [-fHip] [--] स्रोतनिर्देशिका... लक्ष्यनिर्देशिका


== विकल्प झंडे ==
== विकल्प झंडे ==
*<code>-f</code> (बल) - लक्ष्य फ़ाइल को हटाने को निर्दिष्ट करता है यदि इसे लेखन कार्यों के लिए नहीं खोला जा सकता है। निष्कासन द्वारा निष्पादित किसी भी प्रतिलिपि से पहले <code>cp</code> आज्ञा।
*<code>-f</code> (बल) - लक्ष्य फ़ाइल को हटाने को निर्दिष्ट करता है यदि इसे लेखन कार्यों के लिए नहीं खोला जा सकता है। निष्कासन द्वारा निष्पादित किसी भी प्रतिलिपि से पहले सीपी आज्ञा।
* <code>-H</code> (डीरेफरेंस) - बनाता है <code>cp</code> आदेश सांकेतिक लिंक (सिम्लिंक) का अनुसरण करता है ताकि लक्ष्य के लिए सिमलिंक के बजाय गंतव्य में लक्ष्य फ़ाइल हो।
* <code>-H</code> (डीरेफरेंस) - बनाता है सीपी आदेश सांकेतिक लिंक (सिम्लिंक) का अनुसरण करता है ताकि लक्ष्य के लिए सिमलिंक के बजाय गंतव्य में लक्ष्य फ़ाइल हो।
*<code>-i</code> (इंटरैक्टिव) - अधिलेखित होने वाली फ़ाइल के नाम के साथ संकेत देता है। यह तब होता है जब लक्ष्यनिर्देशिका या लक्ष्यफाइल पैरामीटर में एक फ़ाइल होती है जिसका नाम SourceFile या SourceDirectory पैरामीटर में निर्दिष्ट फ़ाइल के समान होता है। यदि कोई प्रवेश करता है <code>y</code> (या लोकेल के समकक्ष <code>y</code>), द <code>cp</code> आदेश जारी है। कोई अन्य उत्तर रोकता है <code>cp</code> फ़ाइल को अधिलेखित करने से आदेश।
*<code>-i</code> (इंटरैक्टिव) - अधिलेखित होने वाली फ़ाइल के नाम के साथ संकेत देता है। यह तब होता है जब लक्ष्यनिर्देशिका या लक्ष्यफाइल पैरामीटर में फ़ाइल होती है जिसका नाम SourceFile या SourceDirectory पैरामीटर में निर्दिष्ट फ़ाइल के समान होता है। यदि कोई प्रवेश करता है <code>y</code> (या लोकेल के समकक्ष <code>y</code>), द सीपी आदेश जारी है। कोई अन्य उत्तर रोकता है सीपी फ़ाइल को अधिलेखित करने से आदेश।
*<code>-n</code> (नो [[ clobbering ]]) - गलती से किसी भी फाइल को ओवरराइट करने से रोकता है
*<code>-n</code> (नो [[ clobbering |clobbering]] ) - गलती से किसी भी फाइल को ओवरराइट करने से रोकता है
*<code>-p</code> (संरक्षित) - द <code>-p</code>ध्वज संबंधित लक्ष्य में प्रत्येक स्रोत पथ की निम्नलिखित विशेषताओं को संरक्षित करता है: अंतिम डेटा संशोधन का समय और अंतिम पहुंच का समय, स्वामित्व (केवल अगर इसे ऐसा करने की अनुमति है), और फ़ाइल अनुमति-बिट्स।
*<code>-p</code> (संरक्षित) - द <code>-p</code>ध्वज संबंधित लक्ष्य में प्रत्येक स्रोत पथ की निम्नलिखित विशेषताओं को संरक्षित करता है: अंतिम डेटा संशोधन का समय और अंतिम पहुंच का समय, स्वामित्व (केवल अगर इसे ऐसा करने की अनुमति है), और फ़ाइल अनुमति-बिट्स।
*<code>-R</code> या <code>-r</code> (पुनरावर्ती) - निर्देशिकाओं को पुनरावर्ती रूप से कॉपी करें
*<code>-R</code> या <code>-r</code> (पुनरावर्ती) - निर्देशिकाओं को पुनरावर्ती रूप से कॉपी करें
Line 54: Line 55:
वर्तमान निर्देशिका में फ़ाइल की प्रतिलिपि बनाना:
वर्तमान निर्देशिका में फ़ाइल की प्रतिलिपि बनाना:
  cp prog.c prog.bak
  cp prog.c prog.bak
यह prog.c को prog.bak में कॉपी करता है। यदि prog.bak फ़ाइल पहले से मौजूद नहीं है, तो cp कमांड इसे बनाता है। यदि यह मौजूद है, तो cp कमांड इसकी सामग्री को prog.c फ़ाइल की सामग्री से बदल देता है।
यह prog.c को prog.bak में कॉपी करता है। यदि prog.bak फ़ाइल पहले से मौजूद नहीं है, तो सीपी कमांड इसे बनाता है। यदि यह मौजूद है, तो सीपी कमांड इसकी सामग्री को prog.c फ़ाइल की सामग्री से बदल देता है।


वर्तमान निर्देशिका में दो फ़ाइलों को दूसरी निर्देशिका में कॉपी करें:
वर्तमान निर्देशिका में दो फ़ाइलों को दूसरी निर्देशिका में कॉपी करें:
Line 60: Line 61:
यह फ़ाइलों को जोन्स को /home/nick/clients/jones और smith को /home/nick/clients/smith में कॉपी करता है।
यह फ़ाइलों को जोन्स को /home/nick/clients/jones और smith को /home/nick/clients/smith में कॉपी करता है।


फ़ाइल को एक नई फ़ाइल में कॉपी करें और स्रोत फ़ाइल से संबद्ध संशोधन दिनांक, समय और अभिगम नियंत्रण सूची को संरक्षित करें:
फ़ाइल को नई फ़ाइल में कॉपी करें और स्रोत फ़ाइल से संबद्ध संशोधन दिनांक, समय और अभिगम नियंत्रण सूची को संरक्षित करें:
  सीपी-पी स्मिथ स्मिथ जूनियर
  सीपी-पी स्मिथ स्मिथ जूनियर
यह स्मिथ फ़ाइल को smith.jr फ़ाइल में कॉपी करता है। वर्तमान दिनांक और समय स्टाम्प के साथ फ़ाइल बनाने के बजाय, सिस्टम smith.jr फ़ाइल को स्मिथ फ़ाइल के समान दिनांक और समय देता है। smith.jr फ़ाइल भी स्मिथ फ़ाइल की पहुँच नियंत्रण सुरक्षा को इनहेरिट करती है।
यह स्मिथ फ़ाइल को smith.jr फ़ाइल में कॉपी करता है। वर्तमान दिनांक और समय स्टाम्प के साथ फ़ाइल बनाने के बजाय, सिस्टम smith.jr फ़ाइल को स्मिथ फ़ाइल के समान दिनांक और समय देता है। smith.jr फ़ाइल भी स्मिथ फ़ाइल की पहुँच नियंत्रण सुरक्षा को इनहेरिट करती है।


किसी अन्य निर्देशिका में उसकी सभी फ़ाइलों और उपनिर्देशिकाओं सहित एक निर्देशिका की प्रतिलिपि बनाएँ:
किसी अन्य निर्देशिका में उसकी सभी फ़ाइलों और उपनिर्देशिकाओं सहित निर्देशिका की प्रतिलिपि बनाएँ:
  cp -R /home/nick/client /home/nick/customers
  cp -R /home/nick/client /home/nick/customers
यह डायरेक्टरी क्लाइंट्स को कॉपी करता है, जिसमें इसकी सभी फाइलें, सबडायरेक्टरीज और उन सबडायरेक्टरीज की फाइलें डायरेक्टरी कस्टमर्स/क्लाइंट्स में होती हैं। कुछ यूनिक्स सिस्टम इस मोड में अलग तरह से व्यवहार करते हैं, जो निर्देशिका पथों की समाप्ति पर निर्भर करता है। का उपयोग करते हुए <code>cp -R /home/nick/clients/ /home/nick/customers</code> GNU सिस्टम पर यह उम्मीद के मुताबिक व्यवहार करता है; हालाँकि, BSD सिस्टम पर, यह क्लाइंट डायरेक्टरी की सभी सामग्री को डायरेक्टरी क्लाइंट के बजाय कॉपी करता है। यदि स्रोत निर्देशिका का पथ . या .. (पिछला स्लैश के साथ या बिना)।
यह डायरेक्टरी क्लाइंट्स को कॉपी करता है, जिसमें इसकी सभी फाइलें, सबडायरेक्टरीज और उन सबडायरेक्टरीज की फाइलें डायरेक्टरी कस्टमर्स/क्लाइंट्स में होती हैं। कुछ यूनिक्स सिस्टम इस मोड में अलग तरह से व्यवहार करते हैं, जो निर्देशिका पथों की समाप्ति पर निर्भर करता है। का उपयोग करते हुए सीपी <code>-R /home/nick/clients/ /home/nick/customers</code> जीएनयू सिस्टम पर यह उम्मीद के मुताबिक व्यवहार करता है; हालाँकि, BSD सिस्टम पर, यह क्लाइंट डायरेक्टरी की सभी सामग्री को डायरेक्टरी क्लाइंट के बजाय कॉपी करता है। यदि स्रोत निर्देशिका का पथ . या .. (पिछला स्लैश के साथ या बिना)।


फ़ाइल को किसी मौजूदा फ़ाइल में कॉपी करने के लिए मौजूदा फ़ाइल को अपडेट मोड में खोलकर निष्पादित किया जाता है, जिससे फ़ाइल इनोड को संरक्षित किया जाता है, जिसके लिए राइट एक्सेस की आवश्यकता होती है और लक्ष्य फ़ाइल में परिणाम मूल रूप से अनुमतियों को बनाए रखते हैं।
फ़ाइल को किसी मौजूदा फ़ाइल में कॉपी करने के लिए मौजूदा फ़ाइल को अपडेट मोड में खोलकर निष्पादित किया जाता है, जिससे फ़ाइल इनोड को संरक्षित किया जाता है, जिसके लिए राइट एक्सेस की आवश्यकता होती है और लक्ष्य फ़ाइल में परिणाम मूल रूप से अनुमतियों को बनाए रखते हैं।


== संबंधित यूनिक्स आदेश ==
== संबंधित यूनिक्स आदेश ==
* [[cpio]] - संपूर्ण निर्देशिका संरचना को एक स्थान से दूसरे स्थान पर कॉपी करें
* [[cpio]] - संपूर्ण निर्देशिका संरचना को स्थान से दूसरे स्थान पर कॉपी करें
* [[टार (कंप्यूटिंग)]] - फाइलों का संग्रह बनाएं
* [[टार (कंप्यूटिंग)]] - फाइलों का संग्रह बनाएं
* [[लिंक (यूनिक्स)]] - फ़ाइल या निर्देशिका के लिए लिंक बनाने के लिए सिस्टम कॉल
* [[लिंक (यूनिक्स)]] - फ़ाइल या निर्देशिका के लिए लिंक बनाने के लिए सिस्टम कॉल
* ln (यूनिक्स) - फ़ाइल या निर्देशिका के लिए एक लिंक बनाएँ
* ln (यूनिक्स) - फ़ाइल या निर्देशिका के लिए लिंक बनाएँ
* [[एमवी (यूनिक्स)]] - फ़ाइल या निर्देशिका को स्थानांतरित करें
* [[एमवी (यूनिक्स)]] - फ़ाइल या निर्देशिका को स्थानांतरित करें
* [[आरएम (यूनिक्स)]] - एक फ़ाइल या निर्देशिका को हटा दें
* [[आरएम (यूनिक्स)]] - फ़ाइल या निर्देशिका को हटा दें
* [[अनलिंक (यूनिक्स)]] - फ़ाइल या निर्देशिका को हटाने के लिए सिस्टम कॉल
* [[अनलिंक (यूनिक्स)]] - फ़ाइल या निर्देशिका को हटाने के लिए सिस्टम कॉल
* [[chmod]] - फ़ाइल या निर्देशिका पर मोड (उर्फ अनुमतियाँ) बदलें
* [[chmod]] - फ़ाइल या निर्देशिका पर मोड (उर्फ अनुमतियाँ) बदलें
* [[चाउन]] - फ़ाइल या निर्देशिका पर स्वामित्व बदलें
* [[चाउन]] - फ़ाइल या निर्देशिका पर स्वामित्व बदलें
* [[chgrp]] - फ़ाइल या निर्देशिका पर समूह बदलें
* [[chgrp]] - फ़ाइल या निर्देशिका पर समूह बदलें
* [[ यूयूकेपी ]] - यूनिक्स टू यूनिक्स कॉपी
* [[ यूयूकेपी | यूयूकेपी]] - यूनिक्स टू यूनिक्स कॉपी
* [[ सुरक्षित प्रति ]] - SSH पर सिक्योर कॉपी
* [[ सुरक्षित प्रति | सुरक्षित प्रति]] - SSH पर सिक्योर कॉपी
* प्रगति,<ref>{{Cite web|url=https://linux.die.net/man/1/progress|title=Progress(1) - Linux man page}}</ref><ref>{{Cite web|url=https://github.com/Xfennec/progress|title = प्रगति - कोरुटिल्स प्रगति दर्शक|website = [[GitHub]]|date = 14 November 2021}}</ref> Linux टूल cp, mv, dd की प्रगति दिखाने के लिए।
* प्रगति,<ref>{{Cite web|url=https://linux.die.net/man/1/progress|title=Progress(1) - Linux man page}}</ref><ref>{{Cite web|url=https://github.com/Xfennec/progress|title = प्रगति - कोरुटिल्स प्रगति दर्शक|website = [[GitHub]]|date = 14 November 2021}}</ref> Linux टूल cp, mv, dd की प्रगति दिखाने के लिए।



Revision as of 17:23, 4 July 2023

cp
Original author(s)AT&T Bell Laboratories
Developer(s)Various open-source and commercial developers
Initial releaseNovember 3, 1971; 53 years ago (1971-11-03)
Written inPlan 9: C
Operating systemUnix, Unix-like, Plan 9, Inferno, KolibriOS
PlatformCross-platform
TypeCommand
Licensecoreutils: GPLv3
Plan 9: MIT License

कम्प्यूटिंग में,cp विभिन्न यूनिक्स और यूनिक्स जैसे ऑपरेटिंग सिस्टम में कम्प्यूटर फाइल और निर्देशिका (कंप्यूटिंग) की प्रतिलिपि बनाने के लिए कमांड (कंप्यूटिंग) है। कमांड में ऑपरेशन की तीन प्रमुख विधियाँ हैं, जो फाइल को दूसरी फाइल में कॉपी करने के लिए, या से अधिक फाइलों को डायरेक्टरी में कॉपी करने के लिए, या पूर्ण डायरेक्टरी को दूसरी डायरेक्टरी में कॉपी करने के लिए प्रस्तुत किए गए तर्कों के प्रकार द्वारा व्यक्त किए जाते हैं।[1]

यूटिलिटी निष्पादित कार्यों का विवरण देने के लिए विभिन्न कमांड लाइन विकल्प फ़्लैग को भी स्वीकार करती है। पोसिक्स सीपी और जीएनयू सीपी दो प्रमुख विनिर्देश हैं। पोसिक्स संस्करण की तुलना में जीएनयू सीपी के पास कई अतिरिक्त विकल्प हैं।[2] कमांड एकीकृत एक्सटेंसिबल फर्मवेयर इंटरफ़ेस में भी उपलब्ध है।[3]

इतिहास

सीपी संस्करण 1 यूनिक्स का हिस्सा था।[4] का संस्करण सीपी बंडल्ड इन जीएनयू coreutils को Torbjorn Granlund, David MacKenzie, और Jim Meyering ने लिखा था।[5]

ऑपरेटिंग मोड

cp के संचालन के तीन प्रमुख तरीके हैं। आह्वान पर कार्यक्रम में प्रस्तुत किए गए तर्कों के प्रकार और गिनती से इन तरीकों का अनुमान लगाया जाता है।

  • जब प्रोग्राम में फाइलों के पथ नामों के दो तर्क होते हैं, तो प्रोग्राम पहली फाइल की सामग्री को दूसरी फाइल में कॉपी करता है, यदि आवश्यक हो तो दूसरी फाइल बनाता है।
  • जब प्रोग्राम में फ़ाइलों के पथ नामों के या अधिक तर्क होते हैं और उन तर्कों का अनुसरण करते हैं जो किसी निर्देशिका के पथ के लिए होते हैं, तो प्रोग्राम प्रत्येक स्रोत फ़ाइल को गंतव्य निर्देशिका में कॉपी करता है, ऐसी कोई भी फ़ाइल बनाता है जो पहले से मौजूद नहीं है।
  • जब प्रोग्राम के तर्क दो निर्देशिकाओं के लिए पथ नाम होते हैं, तो सीपी स्रोत निर्देशिका में सभी फ़ाइलों को गंतव्य निर्देशिका में कॉपी करता है, आवश्यक फ़ाइलों या निर्देशिकाओं का निर्माण करता है। ऑपरेशन के इस मोड में निर्देशिकाओं की पुनरावर्ती प्रतिलिपि को इंगित करने के लिए अतिरिक्त विकल्प ध्वज, आमतौर पर आर की आवश्यकता होती है। यदि गंतव्य निर्देशिका पहले से मौजूद है, तो स्रोत को गंतव्य में कॉपी किया जाता है, जबकि गंतव्य मौजूद नहीं होने पर नई निर्देशिका बनाई जाती है।

उपयोग

एक फाइल को दूसरी फाइल में कॉपी करना:

cp [-fHip] [--] सोर्सफाइल टारगेटफाइल

किसी निर्देशिका में फ़ाइल (फ़ाइलों) की प्रतिलिपि बनाना

cp [-fHip] [--] स्रोत फ़ाइल ... लक्ष्य निर्देशिका

एक निर्देशिका को निर्देशिका में कॉपी करना (-r या -R का उपयोग किया जाना चाहिए)

cp -r|-R [-fHip] [--] स्रोतनिर्देशिका... लक्ष्यनिर्देशिका

विकल्प झंडे

  • -f (बल) - लक्ष्य फ़ाइल को हटाने को निर्दिष्ट करता है यदि इसे लेखन कार्यों के लिए नहीं खोला जा सकता है। निष्कासन द्वारा निष्पादित किसी भी प्रतिलिपि से पहले सीपी आज्ञा।
  • -H (डीरेफरेंस) - बनाता है सीपी आदेश सांकेतिक लिंक (सिम्लिंक) का अनुसरण करता है ताकि लक्ष्य के लिए सिमलिंक के बजाय गंतव्य में लक्ष्य फ़ाइल हो।
  • -i (इंटरैक्टिव) - अधिलेखित होने वाली फ़ाइल के नाम के साथ संकेत देता है। यह तब होता है जब लक्ष्यनिर्देशिका या लक्ष्यफाइल पैरामीटर में फ़ाइल होती है जिसका नाम SourceFile या SourceDirectory पैरामीटर में निर्दिष्ट फ़ाइल के समान होता है। यदि कोई प्रवेश करता है y (या लोकेल के समकक्ष y), द सीपी आदेश जारी है। कोई अन्य उत्तर रोकता है सीपी फ़ाइल को अधिलेखित करने से आदेश।
  • -n (नो clobbering ) - गलती से किसी भी फाइल को ओवरराइट करने से रोकता है
  • -p (संरक्षित) - द -pध्वज संबंधित लक्ष्य में प्रत्येक स्रोत पथ की निम्नलिखित विशेषताओं को संरक्षित करता है: अंतिम डेटा संशोधन का समय और अंतिम पहुंच का समय, स्वामित्व (केवल अगर इसे ऐसा करने की अनुमति है), और फ़ाइल अनुमति-बिट्स।
  • -R या -r (पुनरावर्ती) - निर्देशिकाओं को पुनरावर्ती रूप से कॉपी करें

उदाहरण

वर्तमान निर्देशिका में फ़ाइल की प्रतिलिपि बनाना:

cp prog.c prog.bak

यह prog.c को prog.bak में कॉपी करता है। यदि prog.bak फ़ाइल पहले से मौजूद नहीं है, तो सीपी कमांड इसे बनाता है। यदि यह मौजूद है, तो सीपी कमांड इसकी सामग्री को prog.c फ़ाइल की सामग्री से बदल देता है।

वर्तमान निर्देशिका में दो फ़ाइलों को दूसरी निर्देशिका में कॉपी करें:

सीपी जोन्स स्मिथ / होम / निक / क्लाइंट्स

यह फ़ाइलों को जोन्स को /home/nick/clients/jones और smith को /home/nick/clients/smith में कॉपी करता है।

फ़ाइल को नई फ़ाइल में कॉपी करें और स्रोत फ़ाइल से संबद्ध संशोधन दिनांक, समय और अभिगम नियंत्रण सूची को संरक्षित करें:

सीपी-पी स्मिथ स्मिथ जूनियर

यह स्मिथ फ़ाइल को smith.jr फ़ाइल में कॉपी करता है। वर्तमान दिनांक और समय स्टाम्प के साथ फ़ाइल बनाने के बजाय, सिस्टम smith.jr फ़ाइल को स्मिथ फ़ाइल के समान दिनांक और समय देता है। smith.jr फ़ाइल भी स्मिथ फ़ाइल की पहुँच नियंत्रण सुरक्षा को इनहेरिट करती है।

किसी अन्य निर्देशिका में उसकी सभी फ़ाइलों और उपनिर्देशिकाओं सहित निर्देशिका की प्रतिलिपि बनाएँ:

cp -R /home/nick/client /home/nick/customers

यह डायरेक्टरी क्लाइंट्स को कॉपी करता है, जिसमें इसकी सभी फाइलें, सबडायरेक्टरीज और उन सबडायरेक्टरीज की फाइलें डायरेक्टरी कस्टमर्स/क्लाइंट्स में होती हैं। कुछ यूनिक्स सिस्टम इस मोड में अलग तरह से व्यवहार करते हैं, जो निर्देशिका पथों की समाप्ति पर निर्भर करता है। का उपयोग करते हुए सीपी -R /home/nick/clients/ /home/nick/customers जीएनयू सिस्टम पर यह उम्मीद के मुताबिक व्यवहार करता है; हालाँकि, BSD सिस्टम पर, यह क्लाइंट डायरेक्टरी की सभी सामग्री को डायरेक्टरी क्लाइंट के बजाय कॉपी करता है। यदि स्रोत निर्देशिका का पथ . या .. (पिछला स्लैश के साथ या बिना)।

फ़ाइल को किसी मौजूदा फ़ाइल में कॉपी करने के लिए मौजूदा फ़ाइल को अपडेट मोड में खोलकर निष्पादित किया जाता है, जिससे फ़ाइल इनोड को संरक्षित किया जाता है, जिसके लिए राइट एक्सेस की आवश्यकता होती है और लक्ष्य फ़ाइल में परिणाम मूल रूप से अनुमतियों को बनाए रखते हैं।

संबंधित यूनिक्स आदेश

  • cpio - संपूर्ण निर्देशिका संरचना को स्थान से दूसरे स्थान पर कॉपी करें
  • टार (कंप्यूटिंग) - फाइलों का संग्रह बनाएं
  • लिंक (यूनिक्स) - फ़ाइल या निर्देशिका के लिए लिंक बनाने के लिए सिस्टम कॉल
  • ln (यूनिक्स) - फ़ाइल या निर्देशिका के लिए लिंक बनाएँ
  • एमवी (यूनिक्स) - फ़ाइल या निर्देशिका को स्थानांतरित करें
  • आरएम (यूनिक्स) - फ़ाइल या निर्देशिका को हटा दें
  • अनलिंक (यूनिक्स) - फ़ाइल या निर्देशिका को हटाने के लिए सिस्टम कॉल
  • chmod - फ़ाइल या निर्देशिका पर मोड (उर्फ अनुमतियाँ) बदलें
  • चाउन - फ़ाइल या निर्देशिका पर स्वामित्व बदलें
  • chgrp - फ़ाइल या निर्देशिका पर समूह बदलें
  • यूयूकेपी - यूनिक्स टू यूनिक्स कॉपी
  • सुरक्षित प्रति - SSH पर सिक्योर कॉपी
  • प्रगति,[6][7] Linux टूल cp, mv, dd की प्रगति दिखाने के लिए।

यह भी देखें

संदर्भ

  1. "Cp(1) - Linux manual page".
  2. "GNU Coreutils: cp invocation". www.gnu.org.
  3. "EFI Shells and Scripting". Intel. Retrieved 2013-09-25.
  4. McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139.
  5. "Cp(1): Copy files/Directories - Linux man page".
  6. "Progress(1) - Linux man page".
  7. "प्रगति - कोरुटिल्स प्रगति दर्शक". GitHub. 14 November 2021.

बाहरी संबंध