كيفية نسخ دليل ومحتوياته في Linux

استخدم الأمر "cp" لنسخ ولصق الدلائل بأكملها من مكان إلى آخر

بغض النظر عن نظام التشغيل الذي تقوم بتشغيله ، فإن نسخ ملف أو مجلد من موقع إلى آخر هو أبسط مهمة تقوم بها يوميًا. في يوم حافل بالعمل ، أثناء مهمة مشروع في المدرسة ، أو أثناء التطوير المستمر لمشروع ما ، لا مفر من نسخ الملفات من الموقع أ إلى الموقع ب.

عادة ما يتم نسخ الملفات أو المجلدات باستخدام واجهة المستخدم الرسومية. يعتني Linux بعادتك في العمل على الجهاز من خلال توفير أداة مساعدة لسطر الأوامر تسمح لك بنسخ الملفات أو المجلدات من موقع إلى آخر. باستخدام cp الأمر مع مجموعة متنوعة من الخيارات يمنحك حرية نسخ الملفات والمجلدات بطرق متعددة.

اسمح لي بتوجيهك خلال هذه المقالة حيث ستتعرف على cp الأمر وطرق نسخ الدلائل مع محتواها.

الخيارات المتاحة مع cp يأمر

هذه هي أكثر الخيارات شيوعًا المستخدمة مع cp الأمر في سياق نسخ دليل وكافة محتوياته.

خياراتوصف
-الخامسالوضع المطول (يظهر التقدم)
-r / صنسخ الدلائل بشكل متكرر
لا تكتب فوق ملف أو مجلد موجود
-أناموجه قبل الكتابة

انسخ دليلًا من موقع إلى آخر

فلنبدأ بأبسط استخدام لـ cp يأمر. سنستخدم هذا الأمر مع الخيار -r.

باستخدام -r يضمن الخيار أن المجلدات الفرعية والملفات الموجودة داخل الدليل الذي تنسخه ، سيتم نسخها أيضًا.

بناء الجملة:

cp -r [source_location] [target_location]

مثال:

لدي دليلين داخل دليل عملي الحالي يسمى "مشروع" و "مساحة عمل".

في هذا المثال ، سأستخدم ملف cp -r الأمر لنسخ الدليل "مشروع" مع كل محتوياته إلى موقع جديد ، مثل "/ home / gaurav / workspace". هذا يعني ببساطة أنني أنسخ الدليل المسمى "مشروع" إلى دليل يسمى "مساحة العمل".

هذه هي محتويات الدليل "مشروع". باستخدام ls أمر لعرض محتوياته.

gaurav @ ubuntu: ~ / project $ ls -al total 288 drwxr-xr-x 6 gaurav gaurav 4096 سبتمبر 17 18:26. drwxr-xr-x 88 gaurav gaurav 266240 سبتمبر 17 18:24 .. drwxr-xr-x 2 gaurav gaurav 4096 سبتمبر 17 18:25 dem1، drwxr-xr-x 2 gaurav gaurav 4096 سبتمبر 17 18:25 dem2 drwxr-xr -x 2 gaurav gaurav 4096 Sep 17 18:25 dem3 drwxr-xr-x 2 gaurav gaurav 4096 سبتمبر 17 18:25 dem4 -rw-r - r-- 1 gaurav gaurav 24 Sep 17 18:26 temp.c gaurav @ ubuntu: ~ / project $

الآن ، باستخدام ملف cp -r الأمر يمكننا نسخ الدليل "مشروع" إلى أي مكان مطلوب.

gaurav @ ubuntu: ~ $ cp -r / home / gaurav / project / home / gaurav / workspace gaurav @ ubuntu: ~ $

انتاج:

gaurav @ ubuntu: ~ / workspace $ ls -al total 408 drwxrwxr-x 4 gaurav gaurav 4096 Sep 17 18:27. drwxr-xr-x 88 gaurav gaurav 266240 سبتمبر 17 18:24 .. drwxrwxr-x 3 gaurav gaurav 4096 Mar 22 2018 metadata drwxr-xr-x 6 gaurav gaurav 4096 Sep 17 18:27 Project -rw-r - r - 1 gaurav gaurav 1535 Sep 16 17:13 source.c gaurav @ ubuntu: ~ / workspace $ 

في الإخراج أعلاه ، يمكننا أن نرى أنه تم نسخ الدليل "مشروع" من الموقع الأصلي إلى هذا الموقع الجديد "/ home / gaurav / workspace". الآن ، دعنا نفتح الدليل "مشروع" ونتحقق مما إذا كانت جميع المحتويات الموجودة بداخله قد تم نسخها أيضًا.

gaurav @ ubuntu: ~ $ cd ./workspace/project gaurav @ ubuntu: ~ / workspace / project $

ملحوظة: لقد استخدمت ./ هنا بدلاً من الدخول إلى المسار الكامل. هذا يعني ببساطة أنه مسار دليلي الرئيسي وأن مساحة العمل موجودة في منزلي أو دليل العمل الحالي. لمزيد من التوضيح حول هذا الموضوع ، يمكنك الاطلاع على هذه المقالة.

انتاج:

gaurav @ ubuntu: ~ / workspace / project $ ls -al total 28 drwxr-xr-x 6 gaurav gaurav 4096 سبتمبر 17 18:27. drwxrwxr-x 4 gaurav gaurav 4096 سبتمبر 17 18:27 .. drwxr-xr-x 2 gaurav gaurav 4096 سبتمبر 17 18:27 dem1، drwxr-xr-x 2 gaurav gaurav 4096 سبتمبر 17 18:27 dem2 drwxr-xr-x 2 gaurav gaurav 4096 Sep 17 18:27 dem3 drwxr-xr-x 2 gaurav gaurav 4096 سبتمبر 17 18:27 dem4 -rw-r - r-- 1 gaurav gaurav 24 سبتمبر 17 18:27 temp.c gaurav @ ubuntu: ~ / مساحة العمل / المشروع $ 

من هذا الإخراج ، يمكننا أن نستنتج أنه تم أيضًا نقل جميع محتويات الدليل "مشروع" إلى الموقع الجديد.

نسخ أدلة متعددة من مكان إلى آخر

لنسخ أدلة متعددة ، cp يمكن استخدام الأمر بنفس الطريقة المذكورة أعلاه. سيكون التغيير الوحيد هنا هو أنك ستحتاج إلى إدخال مسارات المصدر المتعددة للأدلة المتعددة المراد نسخها.

بناء الجملة:

cp -r [source_path_1] [source_path_n] [destination_path]

دعونا نتحقق من هذا الأمر بمثال.

مثال:

gaurav @ ubuntu: ~ / workspace $ cp -r ./snap ./project / home / gaurav / tomcat

هنا ، قمت بنسخ دليلين "snap" و "project" من دليل عملي الحالي إلى موقع جديد "/ home / gaurav / tomcat".

دعنا الآن نتحقق مما إذا تم نسخ الدلائل مع محتواها إلى الموقع الجديد.

gaurav @ ubuntu: ~ / tomcat $ ls -al total 9316 drwxrwxr-x 5 gaurav gaurav 4096 Sep 19 12:16. drwxr-xr-x 88 gaurav gaurav 266240 سبتمبر 19 12:15 .. drwxr-xr-x 6 gaurav gaurav 4096 سبتمبر 19 12:16 مشروع drwxr-xr-x 7 gaurav gaurav 4096 سبتمبر 19 12:16 snap

التحقق مما إذا كان محتوى هذه الدلائل منسوخًا أيضًا.

gaurav @ ubuntu: ~ / tomcat / snap $ ls couchdb eclipse htop pycharm-community vim-editor gaurav @ ubuntu: ~ / tomcat / snap $ 
gaurav @ ubuntu: ~ / tomcat / project $ ls dem1، dem2 dem3 dem4 temp.c gaurav @ ubuntu: ~ / tomcat / project $

استخدام cp الأمر مع الوضع المطول

باستخدام cp الأمر مع الخيار -الخامس تمكن الوضع المطول. تعرض هذه الميزة الملفات الموجودة على الجهاز والتي يتم نسخها. يتم عرض اسم الملف أو المجلد الذي يتم نسخه على الجهاز الطرفي.

بناء الجملة:

cp -vr [دليل_المصدر] [target_location_path]

مثال:

gaurav @ ubuntu: ~ $ cp -vr ./workspace/apache ./space

في هذا المثال ، يتم نسخ الدليل "apache" إلى مجلد جديد "space". لقد استخدمت ملف -الخامس الخيار مع -r، بحيث يتم أيضًا نسخ جميع محتويات دليل apache.

انتاج:

'./workspace/apache' -> './space/apache "./workspace/apache/apache-tomcat-8.0.52.tar.gz' -> './space/apache/apache-tomcat-8.0. 52.tar.gz 'gaurav @ ubuntu: ~ $

يعرض الإخراج الدليل الذي يتم نسخه. يمكن القيام بنفس العملية في حالة نسخ ملفات متعددة.

تجنب الكتابة عند الاستخدام cp يأمر

في بعض الأحيان أثناء استخدام ملف cp الأمر لنسخ ملفات أو مجلدات متعددة ، فقد ينتهي بك الأمر بالكتابة فوق الملفات التي تم نسخها بالفعل إلى الموقع الجديد. لتجنب ذلك ، من المستحسن استخدام -أنا الخيار مع cp يأمر. سيطالبك هذا قبل الكتابة فوق أي ملف أو مجلد.

بناء الجملة:

cp -ri [source_directory_path] [target_location_path]

ملحوظة: هنا ، في النحو الذي استخدمته -r الخيار كذلك. سيؤدي هذا إلى نسخ محتوى الدلائل أيضًا. سيتحقق أيضًا من الكتابة فوق أي من هذه المجلدات الفرعية والملفات الموجودة داخل الدليل.

مثال:

gaurav @ ubuntu: ~ $ cp -ri ./workspace/snap ./tomcat cp: overwrite './tomcat/snap/pycharm-community/current'؟

هنا ، حاولت نسخ دليل باسم "snap" إلى موقع جديد. لكن اسم الدليل "snap" موجود بالفعل في الموقع الجديد. ومن ثم ، ستطالب المحطة الطرفية قبل الكتابة فوق دليل snap الحالي.

يمكنك كتابة 'نعم' أو 'رقم"كرد على هذا الموجه.

في حالة عدم استخدام ملف -أنا الخيار ، سيتم استبدال الدليل الحالي بالدليل الجديد.

تخطي الكتابة فوق الملفات والأدلة باستخدام cp يأمر

يمكننا استخدام خيار لإرشاد المحطة الطرفية إلى عدم الكتابة فوقها مطلقًا وتخطي الملفات والمجلدات المماثلة أثناء استخدام cp يأمر.

بناء الجملة:

cp -nr [source_directory_path] [target_location_path]

باستخدام هذا الأمر ، يمكنك التأكد من عدم الكتابة فوق الملفات والمجلدات الخاصة بك.

مثال:

gaurav @ ubuntu: ~ $ cp -ri ./workspace/snap ./tomcat gaurav @ ubuntu: ~ $

هنا ، الدليل "snap" موجود بالفعل في الموقع الهدف. ومن ثم ، باستخدام سيضمن الخيار عدم الكتابة فوق هذا الدليل.

على عكس -أنا الخيار ، هنا لن تتم مطالبتك بالكتابة.

استنتاج

باستخدام cp الأمر لنسخ الدلائل ومحتوياتها في Linux عملية سهلة. لمعرفة المزيد عن cp الأمر مع الخيارات الأخرى المتاحة ، يمكنك التحقق من صفحة الدليل عن طريق الكتابة رجل cp في محطة Linux الخاصة بك.