سؤال ماذا يعني "cp: حذف الدليل"؟


لقد أصدرت الأمر التالي:

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



شكرا جزيلا. اعتقدت أن * سوف تتعامل معها بشكل متكرر بطريقة أو بأخرى. لكن لا. : D شكرا مرة أخرى. :) - MEM
MEM: * يتم توسيعه بواسطة Bash وليس بواسطة 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. يمكنك بسهولة عرض الملفات والدلائل المخفية في مدير الملفات الرسومية عن طريق تحديد عرض / إظهار الملفات المخفية من القائمة. أو عن طريق الضغط السيطرة - H.

  3. تحتاج إلى استخدام -R الخيار في cp أمر لنسخ دليل ومحتوياته.

  4. / home ليس دليل منزلك. / home / username is. لذا فأنت تحاول على الأرجح أن تنسخ من مكان خاطئ.

  5. الصدفة حساسة لحالة الأحرف ، لذا ~ / downloads و ~ / Downloads هما شيئان مختلفان.


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





لنفترض أن لديك "دليلين" و "اختبار" دليلين

إذا كنت تريد نسخ دليل 'Tag' إلى أمر استخدام 'Test' directory directory

$ : cp -r Tag Test (case sensitive)

في الغالب سوف تحل المشكلة مع رمز أعلاه إذا لم يكن ويمكنك الحصول على رسالة أدناه

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

ثم أضف بعض الملفات في دليل 'Tag' ، ثم انسخ تلك الملفات إلى 'Test'. في الواقع أنا لدي نفس المشكلة ولكن حل مثل ما قلته ثانيا.


-1
2017-07-03 07:14