Cp -r और cp -a में अंतर


174

मैं cp -rऔर के बीच अंतर की तलाश कर रहा हूँ cp -a। फ़ोल्डर से फ़ाइलों की प्रतिलिपि बनाने के मामले में "पुनरावर्ती" का क्या अर्थ है?


62
कुछ लोग मैन पेजों के लिए बेहतर स्पष्टीकरण की तलाश कर रहे हैं क्योंकि यह हमेशा स्पष्ट नहीं होता है कि विवरण का क्या मतलब है। मुझे कई बार खुदाई करनी पड़ी है और यह जानने के लिए परीक्षण / प्रयोग करना है कि वास्तव में एक विशेष कमांड के साथ क्या हो रहा है। grep का मैन पेज मुझे किसी भी दिन भ्रमित कर सकता है।
जो

2
मैं आपकी हताशा को समझ सकता हूं, लेकिन सबसे अधिक, सीखने का सबसे अच्छा तरीका परीक्षण और प्रयोग करना है।
tripledes

37
या यहां सवाल पूछकर सीखें, एक तरह से उत्तर प्राप्त करें, और फिर समझने के लिए कि क्या और कैसे परीक्षण और प्रयोग करना है। कृपया ध्यान रखें कि आप के लिए काम करता है अक्सर मेरे लिए काम नहीं करता है, आदि-आदि
Lanni

जवाबों:


198

पुनरावर्ती का अर्थ है कि cpनिर्देशिकाओं की सामग्री की प्रतिलिपि बनाना, और यदि किसी निर्देशिका में उपनिर्देशिकाएँ हैं तो उन्हें कॉपी किया जाता है (पुनरावर्ती)। इसके बिना -R, cpकमांड निर्देशिका को छोड़ देता है। लिनक्स पर -rसमान है -R, यह कुछ अन्य यूनिक्स वेरिएंट पर कुछ किनारे के मामलों में भिन्न है।

डिफ़ॉल्ट रूप से, cpएक नई फ़ाइल बनाता है जिसमें पुरानी फ़ाइल की तरह ही सामग्री होती है, और वही अनुमतियाँ जो umask द्वारा प्रतिबंधित होती हैं ; कॉपी कॉपी के समय से दिनांकित है, और कॉपी करने वाले उपयोगकर्ता के अंतर्गत आता है। -pविकल्प के साथ , कॉपी में एक ही संशोधन समय, एक ही एक्सेस समय और मूल के समान अनुमतियाँ हैं। इसमें मूल के समान स्वामी और समूह भी हैं, यदि कॉपी करने वाले उपयोगकर्ता को ऐसी फाइलें बनाने की अनुमति है।

-aविकल्प का मतलब है -Rऔर -pसाथ ही कुछ अन्य संरक्षण विकल्प। यह एक प्रतिलिपि बनाने का प्रयास करता है जो मूल के करीब है: एक ही निर्देशिका ट्री, एक ही फ़ाइल प्रकार, एक ही सामग्री, एक ही मेटाडेटा (समय, अनुमतियाँ, विस्तारित विशेषताएँ, आदि)।


35
मूल रूप से, जब तक आप कुछ विशेष नहीं चाहते हैं, आपको कभी भी ज़रूरत नहीं है -rक्योंकि -a( ariveive के लिए) हमेशा सबसे सुरक्षित होता है और शायद आप जो होने की उम्मीद करते हैं।
ams

2
@ जाम हां, यह एक अच्छा सारांश है। उपयोग करने का एकमात्र सामान्य कारण यह -rहै कि आप लिनक्स के अलावा कुछ यूनिक्स संस्करण -aपर हैं जो आपके पास नहीं हैं , और आम तौर पर आप उपयोग करेंगे cp -rp। या rsync -a
गिल्स

कभी-कभी अनुमतियाँ -r लेकिन नहीं -a
DrCord

Notr, not -R उबंटू 18 में काम नहीं करता है
अरकडी

16

"पुनरावर्ती" के लिए -r या -R विकल्प का अर्थ है कि यह सबफ़ोल्डर्स के अंदर मौजूद फ़ाइलों सहित सभी फ़ाइलों की प्रतिलिपि बनाएगा।

सूचीबद्ध के रूप में -a विकल्प -dR के समान है जिसका अर्थ है कि यह लिंक को संरक्षित करेगा और उपनिर्देशिका की सामग्री की प्रतिलिपि भी बनाएगा। लिंक को संरक्षित करने का मतलब यह है कि यह लिंक का पालन नहीं करेगा क्योंकि यह पुनरावर्ती कॉपी है।

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