سؤال كيف يمكنني نسخ محتويات مجلد إلى مجلد آخر في دليل مختلف باستخدام المحطة الطرفية؟


أحاول نسخ محتويات مجلد إلى مجلد آخر في دليل مختلف باستخدام المحطة الطرفية.

هل يمكن لأحد أن يقدم لي مثالاً على جملة سطر الأوامر المطلوبة لتحقيق ذلك؟


529
2017-12-11 01:19


الأصل


cyberciti.biz/faq/copy-folder-linux-command-line لديه معلومات أكثر وضوحا. - Dilip Rajkumar


الأجوبة:


يمكنك نسخ محتوى مجلد /source إلى مجلد آخر موجود /dest مع الأمر

cp -a /source/. /dest/

ال -a الخيار هو خيار متكرر محسّن ، يحافظ على كل سمات الملف ، ويحافظ أيضًا على الروابط.

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


802
2017-12-11 12:01



إجابة رائعة. سأكتب مثالا حقيقيا في حالة شخص ما يواجه مشكلة مع هذا الأمر: sudo cp -a / var / www / opencart /. / فار / على شبكة الاتصالات العالمية / opencart_local / - pablofiumara
enzotib أحاول استخدام هذا الأمر لنسخ محتويات "Downloads / textext" إلى "~ / .config / inkscape / extensions /." باستخدام الأمر الخاص بك اكتب "cp -a / Downloads / textext /. /~/.config/inkscape/extensions/." لكن هذا لا يعمل - Funzies
@ Funzies: ربما ينبغي أن يكون الأمر الخاص بك: cp -a ~/Downloads/textext/. ~/.config/inkscape/extensions/ - enzotib
إضافة -p إشارة للحفاظ على أذونات الملفات والطوابع الزمنية. cp -ap /var/www/original.com/images/. /var/www/new.com/images/ - Dylan Valade
DylanValade: -a يعني بالفعل --preserve=allهذا أوسع من -p = --preserve=mode,ownership,timestamps. - enzotib


بديل هو rsync

rsync -r source/ destination

مزايا rsync هي:

  1. بعد المزامنة الأولية ، ستقوم بعد ذلك بنسخ الملفات التي تم تغييرها فقط.

  2. يمكنك استخدامه عبر الشبكة ، وهو ملائم للملفات الموجودة في $ HOME ، وخاصة ملفات التهيئة.


97
2017-12-11 03:59



أعتقد أنك لست بحاجة إلى العلامة النجمية. rsync -r source/ destination يجب أن يكون كافيًا ، أليس كذلك؟ - Joschua
هذا واحد أكثر ملاءمة: 'rsync -rtvp source / * destination' - shridutt kothari
-r لا يعمل للملفات / المجلدات المخفية - Nam G VU
لن يؤدي هذا إلى نسخ الملفات المخفية ، نظرًا لأن bash يوسع * فقط إلى الملف غير المخفي. الحل بواسطةJoschua أكثر أمانًا. - sauerburger
سيقوم rsync بنسخ الدليل بأكمله ، بما في ذلك الملفات المخفية ، إذا كنت تستخدم trailing / without * so rync source/ dest من الواضح أن الناس سوف يحتاجون إلى تخصيص الأمر rsync ليعملوا كما يحلو لهم. - Panther


دعنا نقول لديك مجلد يسمى FOLDER1 في حياتك ~، في داخل FOLDER1 هو ملف واحد يسمى FILE1 و 2 مجلدات تسمى sub1 و sub2 مع كل الملفات والمجلدات الأخرى داخلها.

لنسخ جميع محتويات ~/folder1 إلى ~/new_folder1 سوف تستخدم

cp -r ~/folder1/. ~/new_folder1

new_folder1 سوف تحتوي على جميع الملفات والمجلدات من folder1.

cp هو أمر للنسخ باستخدام محطة ، -r يجعلها بشكل متكرر (لذلك ، الدليل الحالي + أدلة أخرى داخل الحالية) ~/folder1 هو مجلد الأصل ، ~/new_folder1 هو المجلد الوجهة للملفات / المجلدات داخل الأصل.


56
2017-12-11 01:23



لا يمسك الملفات المخفية - Portablejim
شكرا لك برونو! لقد ساعدني على فهم الصيغة ، رغم أنني اضطررت إلى تغييرها قليلاً (إزالة علامة ~). ربما لأن مجلد الوجهة كان في / opt ، والذي يتواجد في نظام ملفات آخر. وشكرا لكم Portablejim لتذكر شيء الملف المخفي! - pandisvezia
الفترة اللاحقة مهمة. دون ذلك ، في بعض الأحيان أنه قد إنشاء دليل فرعي جديد ~/new_folder1/folder1 بدلا من نسخ المحتويات. - wisbucky
لما لا cp -r ~/folder1/* ~/new_folder1 - Alex78191
@ Alex78191 [root@ home]# mkdir food [root@ home]# cd food/ [root@ food]# mkdir .fruit [root@ food]# mkdir veggies [root@ food]# touch veggies/carrots [root@ food]# touch .fruit/apple [root@ food]# ls * carrots [root@ food]# - Bruno Pereira


افحص هذا http://www.cyberciti.biz/faq/copy-folder-linux-command-line/ لمزيد من المعلومات حول نسخ المجلد. أتمنى أن يساعدك هذا.

cp Command

cp هو أمر لينكس لنسخ الملفات والدلائل. بناء الجملة كما يلي:

cp source destination
cp dir1 dir2
cp -option  source destination
cp -option1 -option2  source destination

في هذا المثال نسخة /home/vivek/letters المجلد وجميع ملفاته ل /usb/backup دليل:

cp -avr /home/vivek/letters /usb/backup

أين،

-a : الحفاظ على السمات المحددة مثل دليل وضع الملف ، والملكية ، والطوابع الزمنية ، إن أمكن سمات إضافية: السياق ، وصلات ، xattr ، كل شيء.

-v : اشرح ما يجري القيام به.

-r : نسخ الدلائل بشكل متكرر. مثال

انسخ مجلدًا باسم / tmp / conf إلى / tmp / backup:

$ cp -avr /tmp/conf/ /tmp/backup

13
2017-11-25 05:53



هذا ليس ما يطرحه السؤال. - cybermonkey
(باستخدام -r مع -a متكرر ؛ على gnu cp -a هو نفسه مثل "-dr --preserve = all") - cristoper


إذا كان هناك مجلدان: (مع إذن الكتابة)

drwxr-xr-x 4 vimal vimal  4096 Sep  9 12:17 .
drwxr-xr-x 3 root  root   4096 Aug 18 14:35 ..
drwxrwxrwx 6 vimal vimal  4096 Sep  9 12:15 DATA
drwxrwxrwx 7 vimal vimal  4096 Sep  9 12:15 PORTAL

إذا كنت داخل المجلد المسمى PORTAL حيث تريد نسخ كافة محتويات مجلد آخر ، فتذكر البيانات على نفس المستوى ثم ستفعل

vimal@vimal-D3H:/var/www/html/PORTAL$ cp -a ../DATA/. .

عليك أن تلاحظ 2 نقطة. آخر نقطة تقول هنا نسخة في المجلد الحالي

و

واحد يتبع / البيانات /. يقول أن جميع المحتويات داخل مجلد DATA المراد نسخها ، وليس مجلد DATA نفسه.

إذا قمت بإزالة هذا الزائدة "." من / DATA /

ثم سيتم نسخ المجلد DATA بأكمله داخل PORTAL (من حيث كنت تتعامل).


2
2017-09-09 10:39