"Cp: omitting directory" का क्या अर्थ है?


408

मैंने निम्नलिखित आदेश जारी किया है:

sudo cp ~/Transfers/ZendFramework-1.11.4-minimal/library/Zend/* ~/public_html/cmsk.dev/library/

जब मैं ऐसा करता हूं, तो मुझे निम्नलिखित संदेश मिलने लगते हैं:

cp: omitting directory `Tag' 
cp: omitting directory `Test' 
cp: omitting directory `Text' 
cp: omitting directory `TimeSync' 
cp: omitting directory `Tool' 
cp: omitting directory `Translate' 
cp: omitting directory `Uri' 
cp: omitting directory `Validate' 

और इसी तरह...

मुझे ये संदेश क्यों मिले?

जवाबों:


535

डिफ़ॉल्ट रूप से, cpकेवल डायरेक्ट फ़ाइलों को कॉपी करता है, और निर्देशिका में उपनिर्देशिका नहीं। संदेश cp: omitting directory 'directory'आपको चेतावनी देता है कि उल्लिखित निर्देशिका की प्रतिलिपि नहीं बनाई गई है।

ऐसा करने के लिए, -r(या --recursive) विकल्प निर्दिष्ट करें :

sudo cp -r ~/Transfers/ZendFramework-1.11.4-minimal/library/Zend/* ~/public_html/cmsk.dev/library/

मैन्युअल पृष्ठ (आदेश: man cp) उपलब्ध विकल्पों में से एक सिंहावलोकन शामिल हैं।


2
बहुत बहुत धन्यवाद। मैंने सोचा था कि * इससे किसी भी तरह पुनरावृत्ति होगी। लेकिन नहीं। : D थैंक्स अगेन। :)
MEM

11
@ एमईएम: *बैश द्वारा विस्तारित किया जाता है, द्वारा नहीं cpecho अपनी आज्ञा के सामने रख कर स्वयं इसका परीक्षण करें। जब विस्तारित किया जाता है, तो यह पूर्ववर्ती ...library/Zend/(इसमें फ़ाइलें और निर्देशिका) के साथ सब कुछ मेल खाता है ।
लीकेन्स्टाइन

अच्छी खबर यह है कि omitting directory 'directory'इसका मतलब यह नहीं है कि यह उस निर्देशिका को हटा रहा है।
बिस्वास मिश्र

@Lekensteyn मैं एक उपयोगकर्ता की सामग्री को दूसरे के साथ कॉपी करने की कोशिश कर रहा था। क्योंकि मैंने उसके साथ chmod a+rx ~/कॉपी करने की कोशिश करने के बाद उपयोगकर्ता से अनुमति प्राप्त की, cp /home/2110/* /home/2111/जो त्रुटि उत्पन्न करता है जो अनुमति से इनकार करता है। मैं कहाँ गलत था टिप्पणी करने के लिए खेद है क्योंकि मैं डुप्लिकेट प्रश्न नहीं पूछ सकता। मुझे त्वरित उत्तर की आशा है :)
jasinth premkumar

@jasinthpremkumar फाइलें /home/21102110 के उपयोगकर्ता के पास हैं, जबकि फाइलें /home/21112111 के स्वामित्व में हैं। मालिक को सेट करने के लिए, कुछ इस तरह का उपयोग करें sudo chown -R 2111 /home/2111
लीकेनस्टीन

40

संदेश का मतलब है कि cpसूचीबद्ध निर्देशिकाओं की नकल नहीं की है। यह डिफ़ॉल्ट व्यवहार है cp- केवल फ़ाइलों को सामान्य रूप से कॉपी किया जाता है, भले ही आप उन्हें विशिष्ट रूप से निर्दिष्ट कर रहे हों या उपयोग कर रहे हों *। यदि आप निर्देशिकाओं को कॉपी करना चाहते हैं तो -rस्विच का उपयोग करें जिसका अर्थ है "पुनरावर्ती"।


16

यहां कुछ चीजों की जांच करने की आवश्यकता है:

  1. उपयोग न करें sudo। आपको इसकी आवश्यकता नहीं है, आपके पास पहले से ही अपने घर निर्देशिका में सामान लिखने की अनुमति है।

  2. आप मेनू से View / Show Hidden files को चुनकर आसानी से चित्रमय फ़ाइल प्रबंधक में छिपी हुई फ़ाइलों और निर्देशिकाओं को देख सकते हैं। या दबाकर Ctrl- H

  3. आपको निर्देशिका को कॉपी करने के -Rलिए cpकमांड में विकल्प का उपयोग करने की आवश्यकता है और यह सामग्री है।

  4. / होम आपकी होम डायरेक्टरी नहीं है। / घर / उपयोगकर्ता नाम है तो आप शायद गलत जगह से कॉपी करने की कोशिश कर रहे हैं।

  5. खोल संवेदनशील है, इसलिए ~ / डाउनलोड और ~ / डाउनलोड दो अलग-अलग चीजें हैं।


2

जब आप किसी निर्देशिका को कॉपी कर रहे हैं जैसे:

cp dir1 copy_of_dir1

आप केवल और बिल्कुल dir1अपने आप को कॉपी कर रहे हैं न कि उसके भीतर की फाइलें, इसलिए अंत में आप एक नई निर्देशिका संरचना के साथ समाप्त हो जाएंगे, जबकि संरचना मौजूद नहीं है।

दूसरे शब्दों में के बाद यह कॉपी किया गया है यह कहेंगे कि मेरी सामग्री है file1, file2, आदि; हालाँकि इन फ़ाइलों की प्रतिलिपि नहीं बनाई गई है और इस प्रकार इसमें मौजूद नहीं है।

तो इस समस्या को ठीक करने के लिए जो cpडिफ़ॉल्ट रूप से आ सकती है, निर्देशिकाओं को कॉपी नहीं करता है और उन्हें स्किप नहीं करता है जब तक कि आप -rविकल्प निर्दिष्ट नहीं करते हैं जो सभी फ़ाइलों की प्रतिलिपि बनाता है।


1

इसका कारण यह omitting directoryहै क्योंकि cpसभी कॉपी यूटिलिटीज हैं, जिन्हें मैं जानता हूं, फाइलों को कॉपी करने के लिए शुरू करने से पहले कॉपी की जाने वाली फाइलों और उप-निर्देशिकाओं की एक सूची बनाएं। जब --recursiveविकल्प गायब होता है, तो उप-निर्देशिकाएं इस सूची से टकरा जाती हैं। इस प्रकार, छोड़ने का तात्पर्य प्रतिलिपि सूची से हटाने से है, न कि आपके स्रोत माध्यम से। मेरा मानना ​​है कि यह संदेश के अर्थ को संबोधित करता है।


0

सीपी आप तो आप जोड़ सकते हैं नेस्टिंग निर्देशिका कॉपी करना चाहते हैं, तो आदेश, फ़ाइलें और निर्देशिका, नहीं नेस्टेड निर्देशिका कॉपी करने के लिए प्रयोग किया जाता है -r उसके बाद, जहां -r पुनरावर्ती का मतलब है।

सिंटैक्स जिसे आप अनुसरण कर सकते हैं (रूट के रूप में चलाना):

cp -r /source/dir/* /destination/ 

या

cp --recursive /source/dir/* /destination/

-1

मान लीजिए कि आपके पास दो टैग 'टैग' और 'टेस्ट' हैं

यदि आप 'टैग' डायरेक्टरी को 'टेस्ट' डायरेक्टरी यूज़ कमांड को कॉपी करना चाहते हैं

$ : cp -r Tag Test (case sensitive)

अधिकतर समस्या उपरोक्त कोड के साथ हल की जाएगी यदि नहीं और आपको नीचे जैसा संदेश मिलता है

cp: omitting directory `Tag' 
cp: omitting directory `Test'

फिर 'टैग' डायरेक्टरी में कुछ फाइलें जोड़ें और फिर 'टेस्ट' में कॉपी करें। वास्तव में मेरे पास एक ही समस्या है, लेकिन मैंने जो कहा, उसे हल किया।

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