सीपी (यूनिक्स): Difference between revisions
No edit summary |
No edit summary |
||
(4 intermediate revisions by 3 users not shown) | |||
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|पोसिक्स]] सीपी और [[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> | इस प्रकार से यूटिलिटी निष्पादित ऑपरेशन का विवरण देने के लिए विभिन्न कमांड लाइन विकल्प फ़्लैग को भी स्वीकार करती है। [[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 | अतः कमांड [[ एकीकृत एक्सटेंसिबल फर्मवेयर इंटरफ़ेस |एकीकृत एक्सटेंसिबल फर्मवेयर इंटरफ़ेस]] में भी उपलब्ध है।<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 28: | Line 28: | ||
}}</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> जीएनयू [[coreutils|कोरुटिल्स]] में बंडल किए गए सीपी का संस्करण टोरबॉर्न ग्रानलुंड, डेविड मैकेंज़ी और जिम मेयरिंग द्वारा लिखा गया था।<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|कोरुटिल्स]] में बंडल किए गए सीपी का संस्करण टोरबॉर्न ग्रानलुंड, डेविड मैकेंज़ी और जिम मेयरिंग द्वारा लिखा गया था।<ref>{{Cite web|url=https://linux.die.net/man/1/cp|title=Cp(1): Copy files/Directories - Linux man page}}</ref> | ||
== ऑपरेटिंग मोड == | == ऑपरेटिंग मोड == | ||
cp के संचालन की तीन प्रमुख विधियाँ हैं। आह्वान पर प्रोग्राम में प्रस्तुत किए गए तर्कों के प्रकार और गणना से इन विधियों का अनुमान लगाया जाता है। | cp के संचालन की तीन प्रमुख विधियाँ हैं। आह्वान पर प्रोग्राम में प्रस्तुत किए गए तर्कों के प्रकार और गणना से इन विधियों का अनुमान लगाया जाता है। | ||
*जब प्रोग्राम में फाइलों के पथ नामों के दो तर्क होते हैं, तो प्रोग्राम पहली फाइल के विवरण को दूसरी फाइल में कॉपी करता है, यदि आवश्यक हो तो दूसरी फाइल बनाता है। | *जब प्रोग्राम में फाइलों के पथ नामों के दो तर्क होते हैं, तो प्रोग्राम पहली फाइल के विवरण को दूसरी फाइल में कॉपी करता है, यदि आवश्यक हो तो दूसरी फाइल बनाता है। | ||
* जब प्रोग्राम में फ़ाइलों के पथ नामों के या अधिक तर्क होते हैं और उन तर्कों का अनुसरण करते हैं जो किसी निर्देशिका के पथ के लिए होते हैं, तो प्रोग्राम प्रत्येक स्रोत फ़ाइल को गंतव्य निर्देशिका में कॉपी करता है, ऐसी कोई भी फ़ाइल बनाता है जो पूर्व से स्थित नहीं है। | * जब प्रोग्राम में फ़ाइलों के पथ नामों के या अधिक तर्क होते हैं और उन तर्कों का अनुसरण करते हैं जो किसी निर्देशिका के पथ के लिए होते हैं, तो प्रोग्राम प्रत्येक स्रोत फ़ाइल को गंतव्य निर्देशिका में कॉपी करता है, ऐसी कोई भी फ़ाइल बनाता है जो पूर्व से स्थित नहीं है। | ||
*जब प्रोग्राम के तर्क दो निर्देशिकाओं के लिए पथ नाम होते हैं, तो सीपी स्रोत निर्देशिका में सभी फ़ाइलों को गंतव्य निर्देशिका में कॉपी करता है, आवश्यक फ़ाइलों या निर्देशिकाओं का निर्माण करता है। ऑपरेशन के इस मोड में निर्देशिकाओं की पुनरावर्ती प्रतिलिपि को इंगित करने के लिए अतिरिक्त विकल्प फ्लैग, सामान्यतः ''आर'' की आवश्यकता होती है। यदि गंतव्य निर्देशिका पूर्व से स्थित है, तो स्रोत को गंतव्य में कॉपी किया जाता है, जबकि गंतव्य स्थित नहीं होने पर नवीन निर्देशिका बनाई जाती है। | *जब प्रोग्राम के तर्क दो निर्देशिकाओं के लिए पथ नाम होते हैं, तो सीपी स्रोत निर्देशिका में सभी फ़ाइलों को गंतव्य निर्देशिका में कॉपी करता है, आवश्यक फ़ाइलों या निर्देशिकाओं का निर्माण करता है। इस प्रकार से ऑपरेशन के इस मोड में निर्देशिकाओं की पुनरावर्ती प्रतिलिपि को इंगित करने के लिए अतिरिक्त विकल्प फ्लैग, सामान्यतः ''आर'' की आवश्यकता होती है। यदि गंतव्य निर्देशिका पूर्व से स्थित है, तो स्रोत को गंतव्य में कॉपी किया जाता है, जबकि गंतव्य स्थित नहीं होने पर नवीन निर्देशिका बनाई जाती है। | ||
== उपयोग == | == उपयोग == | ||
एक फाइल को दूसरी फाइल में कॉपी करना: | इस प्रकार से एक फाइल को दूसरी फाइल में कॉपी करना: | ||
cp [-fHip] [--] sourcefile targetfile | cp [-fHip] [--] sourcefile targetfile | ||
किसी निर्देशिका में फ़ाइल (फ़ाइलों) की प्रतिलिपि बनाना | अतः किसी निर्देशिका में फ़ाइल (फ़ाइलों) की प्रतिलिपि बनाना | ||
cp [-fHip] [--] sourcefile... targetdirectory | cp [-fHip] [--] sourcefile... targetdirectory | ||
Line 46: | Line 46: | ||
== विकल्प फ्लैग == | == विकल्प फ्लैग == | ||
*<code>-f</code> (बल) - लक्ष्य फ़ाइल को हटाने को निर्दिष्ट करता है यदि इसे लेखन ऑपरेशन के लिए नहीं खोला जा सकता है। निष्कासन <code>cp</code> कमांड द्वारा की गई किसी भी प्रतिलिपि से पहले होता है। | *<code>-f</code> (बल) - लक्ष्य फ़ाइल को हटाने को निर्दिष्ट करता है यदि इसे लेखन ऑपरेशन के लिए नहीं खोला जा सकता है। इस प्रकार से निष्कासन <code>cp</code> कमांड द्वारा की गई किसी भी प्रतिलिपि से पहले होता है। | ||
* <code>-H</code> (भिन्नता) - <code>cp</code> कमांड को प्रतीकात्मक लिंक (सिम्लिंक) का पालन करता है ताकि गंतव्य के निकट लक्ष्य के लिए सिम्लिंक के अतिरिक्त लक्ष्य फ़ाइल हो। | * <code>-H</code> (भिन्नता) - <code>cp</code> कमांड को प्रतीकात्मक लिंक (सिम्लिंक) का पालन करता है ताकि गंतव्य के निकट लक्ष्य के लिए सिम्लिंक के अतिरिक्त लक्ष्य फ़ाइल हो। | ||
*<code>-i</code> ( | *<code>-i</code> (अन्योन्य क्रिया) - अधिलेखित की जाने वाली फ़ाइल के नाम के साथ संकेत देता है। ऐसा तब होता है जब लक्ष्यनिर्देशिका या लक्ष्यफ़ाइल पैरामीटर में सोर्सफाइल या सोर्सडायरेक्टरी पैरामीटर में निर्दिष्ट फ़ाइल के समान नाम वाली फ़ाइल होती है। इस प्रकार से यदि कोई <code>y</code> (या स्थानीय भाषा <code>y</code>के समतुल्य) में प्रवेश करता है, तो <code>cp</code> कमांड जारी रहता है। इस प्रकार से कोई अन्य उत्तर <code>cp</code> कमांड को फ़ाइल को ओवरराइट करने से रोकता है। | ||
*<code>-n</code> (नो [[ clobbering | | *<code>-n</code> (नो [[ clobbering |क्लोब्बेरिंग]]) - किसी भी फाइल को संयोगवश ओवरराइट करने से रोकता है | ||
*<code>-p</code> (संरक्षित) - | *<code>-p</code> (संरक्षित) - <code>-p</code>फ्लैग संबंधित लक्ष्य में प्रत्येक स्रोत पथ की निम्नलिखित विशेषताओं को संरक्षित करता है: अंतिम डेटा संशोधन का समय और अंतिम पहुंच का समय, स्वामित्व (मात्र यदि उसके निकट ऐसा करने की अनुमति है), और फ़ाइल अनुमति-बिट। | ||
*<code>-R</code> या <code>-r</code> (पुनरावर्ती) - निर्देशिकाओं को पुनरावर्ती रूप से कॉपी करें | *<code>-R</code> या <code>-r</code> (पुनरावर्ती) - निर्देशिकाओं को पुनरावर्ती रूप से कॉपी करें | ||
== उदाहरण == | == उदाहरण == | ||
वर्तमान निर्देशिका में फ़ाइल की प्रतिलिपि बनाना: | अतः वर्तमान निर्देशिका में फ़ाइल की प्रतिलिपि बनाना: | ||
cp prog.c prog.bak | cp prog.c prog.bak | ||
यह prog.c को prog.bak में कॉपी करता है। यदि prog.bak फ़ाइल पूर्व से स्थित नहीं है, तो सीपी कमांड इसे बनाता है। यदि यह स्थित है, तो सीपी कमांड इसकी विवरण को prog.c फ़ाइल की विवरण से | इस प्रकार से यह prog.c को prog.bak में कॉपी करता है। यदि prog.bak फ़ाइल पूर्व से स्थित नहीं है, तो सीपी कमांड इसे बनाता है। यदि यह स्थित है, तो सीपी कमांड इसकी विवरण को prog.c फ़ाइल की विवरण से परिवर्तित कर देता है। | ||
वर्तमान निर्देशिका में दो फ़ाइलों को दूसरी निर्देशिका में कॉपी करें: | अतः वर्तमान निर्देशिका में दो फ़ाइलों को दूसरी निर्देशिका में कॉपी करें: | ||
cp jones smith /home/nick/clients | |||
यह | इस प्रकार से यह फाइल जोन्स को / होम / निक / क्लाइंट्स / जोन्स और स्मिथ को / होम / निक / क्लाइंट्स / स्मिथ में कॉपी करता है। | ||
फ़ाइल को नवीन फ़ाइल में कॉपी करें और स्रोत फ़ाइल से संबद्ध संशोधन दिनांक, समय और अभिगम नियंत्रण सूची को संरक्षित करें: | अतः फ़ाइल को नवीन फ़ाइल में कॉपी करें और स्रोत फ़ाइल से संबद्ध संशोधन दिनांक, समय और अभिगम नियंत्रण सूची को संरक्षित करें: | ||
cp -p smith 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> का उपयोग करने पर यह अपेक्षा के अनुरूप व्यवहार करता है; यद्यपि, बीएसडी सिस्टम पर, यह डायरेक्ट्री क्लाइंट के अतिरिक्त "क्लाइंट" डायरेक्टरी के सभी विवरणों को कॉपी करता है। जीएनयू और बीएसडी दोनों प्रणालियों में ऐसा ही होता है यदि स्रोत निर्देशिका का पथ या .. (ट्रेलिंग स्लैश के साथ या उसके बिना) समाप्त होता है। | ||
फ़ाइल को किसी वर्तमान फ़ाइल में कॉपी करने के लिए वर्तमान फ़ाइल को अपडेट मोड में खोलकर निष्पादित किया जाता है, जिससे फ़ाइल इनोड को संरक्षित किया जाता है, जिसके लिए | इस प्रकार से फ़ाइल को किसी वर्तमान फ़ाइल में कॉपी करने के लिए वर्तमान फ़ाइल को अपडेट मोड में खोलकर निष्पादित किया जाता है, जिससे फ़ाइल इनोड को संरक्षित किया जाता है, जिसके लिए लेखन अभिगम की आवश्यकता होती है और लक्ष्य फ़ाइल में परिणाम मूल रूप से अनुमतियों को बनाए रखते हैं। | ||
== संबंधित यूनिक्स | == संबंधित यूनिक्स कमांड == | ||
* [[cpio]] - संपूर्ण निर्देशिका संरचना को स्थान से दूसरे स्थान पर कॉपी करें | * [[cpio]] - संपूर्ण निर्देशिका संरचना को स्थान से दूसरे स्थान पर कॉपी करें | ||
* [[टार (कंप्यूटिंग)]] - फाइलों का संग्रह बनाएं | * [[टार (कंप्यूटिंग)|tar (कंप्यूटिंग)]] - फाइलों का संग्रह बनाएं | ||
* [[लिंक (यूनिक्स)]] - फ़ाइल या निर्देशिका के लिए लिंक बनाने के लिए सिस्टम कॉल | * [[लिंक (यूनिक्स)|link (यूनिक्स)]] - फ़ाइल या निर्देशिका के लिए लिंक बनाने के लिए सिस्टम कॉल | ||
* ln (यूनिक्स) - फ़ाइल या निर्देशिका के लिए लिंक बनाएँ | * ln (यूनिक्स) - फ़ाइल या निर्देशिका के लिए लिंक बनाएँ | ||
* [[एमवी (यूनिक्स)]] - फ़ाइल या निर्देशिका को स्थानांतरित करें | * [[एमवी (यूनिक्स)|mv (यूनिक्स)]] - फ़ाइल या निर्देशिका को स्थानांतरित करें | ||
* [[आरएम (यूनिक्स)]] - फ़ाइल या निर्देशिका को हटा दें | * [[आरएम (यूनिक्स)|rm (यूनिक्स)]] - फ़ाइल या निर्देशिका को हटा दें | ||
* [[अनलिंक (यूनिक्स)]] - फ़ाइल या निर्देशिका को हटाने के लिए सिस्टम कॉल | * [[अनलिंक (यूनिक्स)|unlink (यूनिक्स)]] - फ़ाइल या निर्देशिका को हटाने के लिए सिस्टम कॉल | ||
* [[chmod]] - फ़ाइल या निर्देशिका पर मोड ( | * [[chmod]] - फ़ाइल या निर्देशिका पर मोड (अर्थात अनुमतियाँ) परिवर्तित करें | ||
* [[चाउन]] - फ़ाइल या निर्देशिका पर स्वामित्व | * [[चाउन|chown]] - फ़ाइल या निर्देशिका पर स्वामित्व परिवर्तित करें | ||
* [[chgrp]] - फ़ाइल या निर्देशिका पर समूह | * [[chgrp]] - फ़ाइल या निर्देशिका पर समूह परिवर्तित करें | ||
* [[ यूयूकेपी | | * [[ यूयूकेपी |uucp]] - यूनिक्स टू यूनिक्स कॉपी | ||
* [[ सुरक्षित प्रति | | * [[ सुरक्षित प्रति |scp]] - एसएसएच पर सिक्योर कॉपी | ||
* | * progress,<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> लिनक्स टूल cp, mv, dd की प्रगति दिखाने के लिए है। | ||
== यह भी देखें == | == यह भी देखें == | ||
Line 91: | Line 91: | ||
* [[जीएनयू कोर यूटिलिटीज]] | * [[जीएनयू कोर यूटिलिटीज]] | ||
* [[यूनिक्स कमांड की सूची]] | * [[यूनिक्स कमांड की सूची]] | ||
* [[rsync]] | * [[rsync|आरसिंक]] | ||
==संदर्भ== | ==संदर्भ== | ||
Line 108: | Line 108: | ||
{{Plan 9 commands}} | {{Plan 9 commands}} | ||
{{Core Utilities commands}} | {{Core Utilities commands}} | ||
[[Category:Collapse templates]] | |||
[[Category: | |||
[[Category:Created On 20/06/2023]] | [[Category:Created On 20/06/2023]] | ||
[[Category:IBM i Qshell कमांड]] | |||
[[Category:Machine Translated Page]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Sidebars with styles needing conversion]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates generating microformats]] | |||
[[Category:Templates that are not mobile friendly]] | |||
[[Category:Templates using TemplateData]] | |||
[[Category:Wikipedia metatemplates]] | |||
[[Category:इन्फर्नो (ऑपरेटिंग सिस्टम) कमांड]] | |||
[[Category:फ़ाइल कॉपी उपयोगिताओं]] | |||
[[Category:मानक यूनिक्स कार्यक्रम]] | |||
[[Category:यूनिक्स SUS2008 उपयोगिताओं]] | |||
[[Category:योजना 9 कमांड]] |
Latest revision as of 09:37, 16 July 2023
Original author(s) | AT&T Bell Laboratories |
---|---|
Developer(s) | Various open-source and commercial developers |
Initial release | November 3, 1971 |
Written in | Plan 9: C |
Operating system | Unix, Unix-like, Plan 9, Inferno, KolibriOS |
Platform | Cross-platform |
Type | Command |
License | coreutils: GPLv3 Plan 9: MIT License |
कम्प्यूटिंग में,cp
विभिन्न यूनिक्स और यूनिक्स जैसे ऑपरेटिंग सिस्टम में कम्प्यूटर फाइल और निर्देशिका (कंप्यूटिंग) की प्रतिलिपि बनाने के लिए कमांड (कंप्यूटिंग) है। इस प्रकार से कमांड में ऑपरेशन की तीन प्रमुख विधियाँ हैं, जो फाइल को दूसरी फाइल में कॉपी करने के लिए, या से अधिक फाइलों को डायरेक्टरी में कॉपी करने के लिए, या पूर्ण डायरेक्टरी को दूसरी डायरेक्टरी में कॉपी करने के लिए प्रस्तुत किए गए तर्कों के प्रकार द्वारा व्यक्त किए जाते हैं।[1]
इस प्रकार से यूटिलिटी निष्पादित ऑपरेशन का विवरण देने के लिए विभिन्न कमांड लाइन विकल्प फ़्लैग को भी स्वीकार करती है। पोसिक्स सीपी और जीएनयू सीपी दो प्रमुख विनिर्देश हैं। पोसिक्स संस्करण की तुलना में जीएनयू सीपी के निकट कई अतिरिक्त विकल्प हैं।[2]
अतः कमांड एकीकृत एक्सटेंसिबल फर्मवेयर इंटरफ़ेस में भी उपलब्ध है।[3]
इतिहास
इस प्रकार से सीपी संस्करण 1 यूनिक्स का भाग था।[4] अतः जीएनयू कोरुटिल्स में बंडल किए गए सीपी का संस्करण टोरबॉर्न ग्रानलुंड, डेविड मैकेंज़ी और जिम मेयरिंग द्वारा लिखा गया था।[5]
ऑपरेटिंग मोड
cp के संचालन की तीन प्रमुख विधियाँ हैं। आह्वान पर प्रोग्राम में प्रस्तुत किए गए तर्कों के प्रकार और गणना से इन विधियों का अनुमान लगाया जाता है।
- जब प्रोग्राम में फाइलों के पथ नामों के दो तर्क होते हैं, तो प्रोग्राम पहली फाइल के विवरण को दूसरी फाइल में कॉपी करता है, यदि आवश्यक हो तो दूसरी फाइल बनाता है।
- जब प्रोग्राम में फ़ाइलों के पथ नामों के या अधिक तर्क होते हैं और उन तर्कों का अनुसरण करते हैं जो किसी निर्देशिका के पथ के लिए होते हैं, तो प्रोग्राम प्रत्येक स्रोत फ़ाइल को गंतव्य निर्देशिका में कॉपी करता है, ऐसी कोई भी फ़ाइल बनाता है जो पूर्व से स्थित नहीं है।
- जब प्रोग्राम के तर्क दो निर्देशिकाओं के लिए पथ नाम होते हैं, तो सीपी स्रोत निर्देशिका में सभी फ़ाइलों को गंतव्य निर्देशिका में कॉपी करता है, आवश्यक फ़ाइलों या निर्देशिकाओं का निर्माण करता है। इस प्रकार से ऑपरेशन के इस मोड में निर्देशिकाओं की पुनरावर्ती प्रतिलिपि को इंगित करने के लिए अतिरिक्त विकल्प फ्लैग, सामान्यतः आर की आवश्यकता होती है। यदि गंतव्य निर्देशिका पूर्व से स्थित है, तो स्रोत को गंतव्य में कॉपी किया जाता है, जबकि गंतव्य स्थित नहीं होने पर नवीन निर्देशिका बनाई जाती है।
उपयोग
इस प्रकार से एक फाइल को दूसरी फाइल में कॉपी करना:
cp [-fHip] [--] sourcefile targetfile
अतः किसी निर्देशिका में फ़ाइल (फ़ाइलों) की प्रतिलिपि बनाना
cp [-fHip] [--] sourcefile... targetdirectory
एक निर्देशिका को निर्देशिका में कॉपी करना (-r या -R का उपयोग किया जाना चाहिए)
cp -r|-R [-fHip] [--] sourcedirectory... targetdirectory
विकल्प फ्लैग
-f
(बल) - लक्ष्य फ़ाइल को हटाने को निर्दिष्ट करता है यदि इसे लेखन ऑपरेशन के लिए नहीं खोला जा सकता है। इस प्रकार से निष्कासनcp
कमांड द्वारा की गई किसी भी प्रतिलिपि से पहले होता है।-H
(भिन्नता) -cp
कमांड को प्रतीकात्मक लिंक (सिम्लिंक) का पालन करता है ताकि गंतव्य के निकट लक्ष्य के लिए सिम्लिंक के अतिरिक्त लक्ष्य फ़ाइल हो।-i
(अन्योन्य क्रिया) - अधिलेखित की जाने वाली फ़ाइल के नाम के साथ संकेत देता है। ऐसा तब होता है जब लक्ष्यनिर्देशिका या लक्ष्यफ़ाइल पैरामीटर में सोर्सफाइल या सोर्सडायरेक्टरी पैरामीटर में निर्दिष्ट फ़ाइल के समान नाम वाली फ़ाइल होती है। इस प्रकार से यदि कोईy
(या स्थानीय भाषाy
के समतुल्य) में प्रवेश करता है, तोcp
कमांड जारी रहता है। इस प्रकार से कोई अन्य उत्तरcp
कमांड को फ़ाइल को ओवरराइट करने से रोकता है।-n
(नो क्लोब्बेरिंग) - किसी भी फाइल को संयोगवश ओवरराइट करने से रोकता है-p
(संरक्षित) --p
फ्लैग संबंधित लक्ष्य में प्रत्येक स्रोत पथ की निम्नलिखित विशेषताओं को संरक्षित करता है: अंतिम डेटा संशोधन का समय और अंतिम पहुंच का समय, स्वामित्व (मात्र यदि उसके निकट ऐसा करने की अनुमति है), और फ़ाइल अनुमति-बिट।-R
या-r
(पुनरावर्ती) - निर्देशिकाओं को पुनरावर्ती रूप से कॉपी करें
उदाहरण
अतः वर्तमान निर्देशिका में फ़ाइल की प्रतिलिपि बनाना:
cp prog.c prog.bak
इस प्रकार से यह prog.c को prog.bak में कॉपी करता है। यदि prog.bak फ़ाइल पूर्व से स्थित नहीं है, तो सीपी कमांड इसे बनाता है। यदि यह स्थित है, तो सीपी कमांड इसकी विवरण को prog.c फ़ाइल की विवरण से परिवर्तित कर देता है।
अतः वर्तमान निर्देशिका में दो फ़ाइलों को दूसरी निर्देशिका में कॉपी करें:
cp jones smith /home/nick/clients
इस प्रकार से यह फाइल जोन्स को / होम / निक / क्लाइंट्स / जोन्स और स्मिथ को / होम / निक / क्लाइंट्स / स्मिथ में कॉपी करता है।
अतः फ़ाइल को नवीन फ़ाइल में कॉपी करें और स्रोत फ़ाइल से संबद्ध संशोधन दिनांक, समय और अभिगम नियंत्रण सूची को संरक्षित करें:
cp -p smith smith.jr
इस प्रकार से यह स्मिथ फ़ाइल को smith.jr फ़ाइल में कॉपी करता है। वर्तमान दिनांक और समय स्टाम्प के साथ फ़ाइल बनाने के अतिरिक्त, सिस्टम smith.jr फ़ाइल को स्मिथ फ़ाइल के समान दिनांक और समय देता है। अतः smith.jr फ़ाइल भी स्मिथ फ़ाइल की पहुँच नियंत्रण सुरक्षा को प्राप्त करती है।
किसी अन्य निर्देशिका में उसकी सभी फ़ाइलों और उपनिर्देशिकाओं सहित निर्देशिका की प्रतिलिपि बनाएँ:
cp -R /home/nick/client /home/nick/customers
इस प्रकार से यह डायरेक्टरी क्लाइंट्स को कॉपी करता है, जिसमें इसकी सभी फाइलें, उपडायरेक्टरीज और उन उपडायरेक्टरीज की फाइलें डायरेक्टरी कस्टमर्स/क्लाइंट्स में होती हैं। कुछ यूनिक्स सिस्टम इस मोड में अलग रूप से व्यवहार करते हैं, जो निर्देशिका पथों की समाप्ति पर निर्भर करता है। अतः जीएनयू सिस्टम पर cp-R /home/nick/clients/ /home/nick/customers
का उपयोग करने पर यह अपेक्षा के अनुरूप व्यवहार करता है; यद्यपि, बीएसडी सिस्टम पर, यह डायरेक्ट्री क्लाइंट के अतिरिक्त "क्लाइंट" डायरेक्टरी के सभी विवरणों को कॉपी करता है। जीएनयू और बीएसडी दोनों प्रणालियों में ऐसा ही होता है यदि स्रोत निर्देशिका का पथ या .. (ट्रेलिंग स्लैश के साथ या उसके बिना) समाप्त होता है।
इस प्रकार से फ़ाइल को किसी वर्तमान फ़ाइल में कॉपी करने के लिए वर्तमान फ़ाइल को अपडेट मोड में खोलकर निष्पादित किया जाता है, जिससे फ़ाइल इनोड को संरक्षित किया जाता है, जिसके लिए लेखन अभिगम की आवश्यकता होती है और लक्ष्य फ़ाइल में परिणाम मूल रूप से अनुमतियों को बनाए रखते हैं।
संबंधित यूनिक्स कमांड
- cpio - संपूर्ण निर्देशिका संरचना को स्थान से दूसरे स्थान पर कॉपी करें
- tar (कंप्यूटिंग) - फाइलों का संग्रह बनाएं
- link (यूनिक्स) - फ़ाइल या निर्देशिका के लिए लिंक बनाने के लिए सिस्टम कॉल
- ln (यूनिक्स) - फ़ाइल या निर्देशिका के लिए लिंक बनाएँ
- mv (यूनिक्स) - फ़ाइल या निर्देशिका को स्थानांतरित करें
- rm (यूनिक्स) - फ़ाइल या निर्देशिका को हटा दें
- unlink (यूनिक्स) - फ़ाइल या निर्देशिका को हटाने के लिए सिस्टम कॉल
- chmod - फ़ाइल या निर्देशिका पर मोड (अर्थात अनुमतियाँ) परिवर्तित करें
- chown - फ़ाइल या निर्देशिका पर स्वामित्व परिवर्तित करें
- chgrp - फ़ाइल या निर्देशिका पर समूह परिवर्तित करें
- uucp - यूनिक्स टू यूनिक्स कॉपी
- scp - एसएसएच पर सिक्योर कॉपी
- progress,[6][7] लिनक्स टूल cp, mv, dd की प्रगति दिखाने के लिए है।
यह भी देखें
संदर्भ
- ↑ "Cp(1) - Linux manual page".
- ↑ "GNU Coreutils: cp invocation". www.gnu.org.
- ↑ "EFI Shells and Scripting". Intel. Retrieved 2013-09-25.
- ↑ McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139.
- ↑ "Cp(1): Copy files/Directories - Linux man page".
- ↑ "Progress(1) - Linux man page".
- ↑ "प्रगति - कोरुटिल्स प्रगति दर्शक". GitHub. 14 November 2021.
बाहरी संबंध
- The Single UNIX Specification, Version 4 from The Open Group – Shell and Utilities Reference,
- FreeBSD General Commands Manual –
- NetBSD General Commands Manual –
- OpenBSD General Commands Manual –
- Solaris 10 User Commands Reference Manual –
- Linux User Commands Manual –
- Plan 9 Programmer's Manual, Volume 1 –