सवाल "सीपी: निर्देशिका छोड़ने" का क्या अर्थ है?


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

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' 

और इसी तरह...

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


365
2018-04-18 15:11


मूल




जवाब:


डिफ़ॉल्ट रूप से, 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) उपलब्ध विकल्पों का एक सिंहावलोकन है।


477
2018-04-18 15:15



बहुत बहुत धन्यवाद। मैंने सोचा कि * किसी भी तरह से इसके साथ फिर से निपटेंगे। लेकिन नहीं। : डी फिर से धन्यवाद। :) - MEM
@ एमएमएम: द * बाश द्वारा विस्तारित किया गया है, न कि द्वारा cp। डालकर इसे स्वयं परीक्षण करें echo  आपके आदेश के सामने। विस्तारित होने पर, यह पिछले कुछ चीज़ों से मेल खाता है ...library/Zend/ (इसमें फाइलें और निर्देशिकाएं)। - Lekensteyn
अच्छी खबर यह है कि omitting directory 'directory' इसका मतलब यह नहीं है कि यह उस निर्देशिका को हटा रहा है। - Bishwas Mishra
@Lekensteyn मैं एक उपयोगकर्ता की सामग्री को दूसरे में कॉपी करने की कोशिश कर रहा था। इसलिए मुझे उपयोगकर्ता से अनुमति प्राप्त हुई chmod a+rx ~/ जब मैंने प्रतिलिपि बनाने की कोशिश की cp /home/2110/* /home/2111/ यह त्रुटि उत्पन्न करता है जिसमें राज्यों ने अनुमति अस्वीकार कर दी है। जहां मैं गलत था। टिप्पणी करने के लिए खेद है क्योंकि मैं डुप्लिकेट प्रश्न पूछ नहीं सकता। मैं त्वरित उत्तर के लिए आशा करता हूँ :) - jasinth premkumar
@jasinthpremkumar फाइलें में /home/2110 उपयोगकर्ता 2110 के स्वामित्व में हैं जबकि फाइलें हैं /home/2111 2111 के स्वामित्व वाले हैं। मालिक को सेट करने के लिए, कुछ ऐसा उपयोग करें sudo chown -R 2111 /home/2111। - Lekensteyn


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


34
2018-04-18 15:15





यहां चीजों का जोड़ा जो जांचने की आवश्यकता है:

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

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

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

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

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


14
2017-10-04 07:02





जब आप एक निर्देशिका की प्रतिलिपि बना रहे हैं जैसे:

cp dir1 copy_of_dir1

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

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

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


2
2017-07-03 07:47





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


1
2017-07-24 08:32





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

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

$ : cp -r Tag Test (case sensitive)

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

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

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


-1
2017-07-03 07:14