ماذا يعني" حزب المحافظين: حذف الدليل " يعني?

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

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'

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