सीपी (यूनिक्स)
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
(इंटरैक्टिव) - अधिलेखित होने वाली फ़ाइल के नाम के साथ संकेत देता है। यह तब होता है जब लक्ष्यनिर्देशिका या लक्ष्यफाइल पैरामीटर में फ़ाइल होती है जिसका नाम 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 की प्रगति दिखाने के लिए।
यह भी देखें
संदर्भ
- ↑ "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 –