سؤال نسخ دليل على يونيكس


كيف يمكنني نسخ بنية دليل ، dir1 ، إلى dir2 (مع كل الدلائل الفرعية) على Unix باستخدام نافذة طرفية؟


67
2017-12-15 15:45


الأصل


"cp -r / dir1 / dir2" هل هذا صحيح؟ - Dinesh Kumar
نعم هذا صحيح. قد ترغب في وضع علامة على أحد الإجابات كحل لك. - qroberts


الأجوبة:


cp -rf /source/path/ /destination/path/

-r = العودية ، نسخ كافة الدلائل الفرعية

-f = force ، إذا تعذر فتح ملف وجهة موجود ، فأزله وحاول مرة أخرى

ملحوظة يجب عليك توخي الحذر عند استخدام -f علمًا لأنه سيحل محل أي شيء تنسخه بقوة. شكراNifle لهذا الاقتراح.

قد ترغب في استخدام * wildcard لنسخ كافة الملفات في الدليل إذا كنت تريد ذلك.


95
2017-12-15 15:49



أنا لا أوافق على أنه يجب عليك استخدام f العلم. -f if an existing destination file cannot be opened, remove it and try again - Nifle
شخصيا أنا دائما استخدام العلم -f. ليست ممارسة جيدة لذلك ربما كنت على حق. - qroberts
إذا كنت تعرف ماذا يفعل ، وأنت تعرف ما تفعله ، لا بأس. ولكن في هذه الحالة مع مستخدم عديم الخبرة قد لا يكون مناسبًا. - Nifle
Nifle نعم ، أنا أفهم ما تقوله. فقط إذا كان يجبرها ، فإن فرص نجاحها أفضل مما لو لم يفعل. كل هذا يتوقف على ما تقوم به وأنك تفهم ما تفعله. - qroberts
إذا وضعت ملاحظة في إجابتك حول -f العلم يكون مفيدا إذا كنت تنسخ <source> فوق <dest> (كما في الكتابة فوق الأشياء في <dest>) سأقوم بحفظها بنفسي وحذف جوابي) - Nifle


بينما ال cp -R الإجابات الصحيحة (BTW حالة العلم على BSD يجب أن يكون رأس المال ، وكلاهما مدعوم على لينكس) ، هناك تعويذة قديمة تنطوي على القطران:

$ tar cf - . | (cd DIR; tar xf - )

لماذا ستفعل هذا؟ لأن القطران لديه فهم متطور إلى حد ما الروابط سواء صلبة ورمزية.

هل تريد نسخها لتحل محل الروابط الرمزية الحالية مع نفس النص؟ أو مع وصلات لنفس الهدف (تعديل المسارات النسبية للتعويض)؟ أو مع نسخ بيتيا من الهدف؟

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

قرارات قرارات. يحتوي القطران على إعدادات افتراضية معقولة ، ولكنك تسمح لك بالتركيز على ذلك.


10
2017-12-15 16:07





انا يعجبني

cp -axv source dest

Rsync هو أداة جيدة أخرى لهذا

rsync -va source dest

6
2017-12-15 19:54