"सीपी: ओमिटिंग डायरेक्टरी" का क्या अर्थ है?

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

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' 

और इतने पर । ..

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

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

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

यहां कुछ चीजें जिन्हें जांचने की जरूरत है:

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

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

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

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

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

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

cp dir1 copy_of_dir1

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

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

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

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

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

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

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

या

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

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

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

$ : cp -r Tag Test (case sensitive)

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

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

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