شرح الأمر cp في لينكس مع الأمثلة
شرح كيفية نسخ الملفات والمجلدات باستخدام سطر الأوامر على اللينكس مع الأمثلة
هذا المقال جزء من سلسلة أساسيات أوامر لينكس
يُستخدم الأمر cp (وهو اختصار لـ copy) لنسخ الملفات والمجلدات.
صيغة الأمر
نسخ من المصدر “source” للوجهة “dest”:
1
$ cp [options] source dest
نسخ عدة ملفات إلى مجلد
1
cp [options] Source-1 Source-2 Source-3 Source-n Directory
ومع استبدال [options]
بالخيار المطلوب، والخيارات اختيارية وليست إجبارية لتنفيذ الأمر.
خيارات الأمر cp
الخيارات الرئيسية للأمر cp هي:
الخيار | الوصف |
---|---|
cp -i | نسخ تفاعلي (السؤال قبل استبدال ملف موجود مسبقا) |
cp -f | اختصار لـ force أي إجبار النسخ حتى لو اضطر لحذف الملف الوجهة والكتابة فوقه |
cp -l | أي link وهي مثل إنشاء اختصار بدل من النسخ |
cp -R | نسخ تكراري، ويستخدم لنسخ المجلدات بمحتوياتها بما في ذلك الملفات المخفية |
cp -u | أي update وبالتالي انسخ في حالة المصدر كان أحدث من الوجهة |
cp -v | أي verbose وهو نسخ مع عرض معلومات عن العملية |
أمثلة على الأمر cp
نسخ ملف واحد “main.c” إلى المجلد الهدف “bak”
1
$ cp main.c bak
نسخ ملفين “main.c” و “def.h” إلى المجلد rapid باستخدام المسار المطلق (والذي يبدأ من المجلد الجذر)
1
$ cp main.c def.h /home/usr/rapid/
نسخ كل الملفات ذات اللاحقة “c.” إلى المجلد الفرعي bak
1
$ cp *.c bak
نسخ المجلد src الموجود في المسار الحالي إلى المجلد rapid ذو المسار المطلق: (المسار المطلق يبدأ من المجلد الجذر ويُستخدم عمومًا في حال عدم وجود المجلد أو الملف في مسار العمل الحالي)
1
$ cp src /home/usr/rapid/
نسخ جميع الملفات والمجلدات في المجلد dev إلى المجلد الفرعي bak (بدون الخيار R- سيعطي خطأ)
1
$ cp -R dev bak
نسخ تفاعلي للسؤال قبل النسخ فوق ملفات موجودة:
1
2
$ cp -i test.c bak
cp: overwrite 'bak/test.c'? y
تحديث جميع الملفات في المجلد bak، أي نسخ الملفات الأحدث فقط من المجلد الحالي للمجلد bak
1
$ cp -u * bak
المراجع
- https://www.rapidtables.com/code/linux/cp.html
- https://www.geeksforgeeks.org/cp-command-linux-examples/
التالي: الأمر gcc