লিনাক্সে ফাইলগুলি অনুলিপি করুন, ফাইলগুলি গন্তব্যস্থলে উপস্থিত থাকলে অনুলিপি করুন


32

আমার একটি হার্ড ডিস্ক থেকে অন্য একটিতে / হোম / ইউজার ফোল্ডারটি অনুলিপি করা দরকার। এটিতে 100,000 ফাইল এবং 10 জি আকার রয়েছে G

আমি ব্যবহার করি

cp -r /origin /destination

কখনও কখনও আমি ভাঙ্গা লিঙ্ক, অনুমতি ইত্যাদির কারণে কিছু ত্রুটি পাই। সুতরাং আমি ত্রুটিটি ঠিক করেছি এবং আবার অনুলিপিটি শুরু করা দরকার।

আমি অবাক হই যে আমি "সিপি" কমান্ডটি কীভাবে বলতে পারি, এটি একবার কপি করার চেষ্টা করে, গন্তব্য ফোল্ডারে উপস্থিত থাকলে ফাইলগুলি আবার অনুলিপি না করে।


2
আমাদের সিপি করবেন না। পরিবর্তে rsync ব্যবহার করুন।
উইলিয়াম পার্সেল

উত্তর:


22

cp -R -u -p /source /destination

-u( বা--update ) পতাকা শুধু এই আছে:

সিপির জন্য ম্যান পৃষ্ঠা থেকে:

-উ, - আপডেট

SOURCE ফাইলটি কেবল গন্তব্য ফাইলের চেয়ে নতুন বা যখন গন্তব্য ফাইলটি অনুপস্থিত থাকে তখনই অনুলিপি করুন


6
আক্ষরিকভাবে কেবল সেই ফাইলগুলি অনুলিপি করতে যা বিদ্যমান নেই এবং বিদ্যমানগুলি আপডেট করে না yes n | cp -i /source/* /destination 2>/dev/null
স্বেটিচেকি

4
-u, - আপডেটের অনুলিপি কেবল তখনই যখন SOURCE ফাইলটি গন্তব্য ফাইলের চেয়ে নতুন হয় বা যখন গন্তব্য ফাইলটি অনুপস্থিত থাকে ,u, - আপডেট অনুলিপি কেবল তখনই যখন SOURCE ফাইলটি গন্তব্য ফাইলের চেয়ে নতুন হয় বা যখন গন্তব্য ফাইলটি অনুপস্থিত থাকে -p হিসাবে একইরূপে --preserve = মোড, মালিকানা, টাইমস্ট্যাম্পস - prefers [= এটিটিআর_লিস্ট] নির্দিষ্ট বৈশিষ্ট্যগুলি সংরক্ষণ করুন (ডিফল্ট: মোড, মালিকানা, টাইম স্ট্যাম্পস), যদি সম্ভব হয় অতিরিক্ত বৈশিষ্ট্য: প্রসঙ্গ, লিঙ্কগুলি, এক্সট্রা, সমস্ত
কোভিচ

51

শুধু ব্যবহার cp -n <source> <dest>

ম্যান পৃষ্ঠা থেকে :

-এন, - না-ক্লোবার

একটি বিদ্যমান ফাইল ওভাররাইট করবেন না (পূর্ববর্তী -i বিকল্পটি ওভাররাইড করে)


7
এটাই প্রশ্নের একমাত্র সত্য উত্তর।
সেবিক্স

20

rsync -aq /src /dest

কেবলমাত্র নতুন ফাইলগুলি অনুলিপি করা ছাড়াও, যদি ফাইলটি পরিবর্তিত হয় তবে এটি কেবলমাত্র ফাইলগুলির নতুন অংশগুলি অনুলিপি করবে। এটি নেটওয়ার্ক লিঙ্কগুলিতে অনুলিপি করার উদ্দেশ্যে তৈরি হয়েছে যেখানে আপনি ডেটার পরিমাণ হ্রাস করতে চান - তবে এটি স্থানীয়ভাবে দুর্দান্ত কাজ করে।


আমি আপনার পোস্টে `` ফর্ম্যাটিংটি যুক্ত করতে পারি না কারণ এটি কেবলমাত্র দুটি অক্ষর। এটি সম্পাদনা এবং আপনার কমান্ডের চারপাশে `` অক্ষর যুক্ত করার বিষয়ে আপনি কেমন অনুভব করবেন?
কালিক্স

4

cpকমান্ডের জন্য "-u" বিকল্পটি সন্ধান করুন ।


2
দ্বিমত করুন যে -u ব্যবহার করা ভাল ধারণা। -সূত্রটি নতুন বা গন্তব্য অনুপস্থিত তখনই আপনি অনুলিপি করুন cop মূল পোস্টারের ইস্যুটি কোনও কারণেই ফাইলের অনুলিপি ভাঙার কারণে ঘটেছিল। ওপিতে অর্ধ-লিখিত ফাইল থাকতে হবে যা অনুলিপিটি অনুলিপি করা হয়নি যখন অনুলিপিটি পুনরায় চলমান। এই ফাইলটি কারও কাছে গুরুত্বপূর্ণ হতে পারে! rsync এই সমস্যার সমাধান করে।
হাইজাইমেট

2

উপরের সমস্ত উত্তর সঠিক তবে আপনি যদি এটি পুনরাবৃত্তি করে থাকেন তবে

আপনাকে যা করতে হবে:

 cp -rn SOURCE_PATH DESTINATION_PATH

1

অনুমতি / মালিকানা বজায় রাখতে আপনার রুট হিসাবে অনুলিপি করা উচিত

# cp -au

আরএসএনসিও দেখুন


1

POSIX সমাধান

অন্যান্য উত্তর ব্যবহার -u বা -nবিকল্পগুলির cp। এগুলির কোনওটিই পসিক্স দ্বারা প্রয়োজনীয় নয় ; বা rsyncঅন্য কোন উত্তর থেকে আসে না ; বা একটি yesমন্তব্যে ব্যবহৃত হয় না।

তবুও আমরা yes nএকটি whileলুপ দিয়ে পুনরুত্পাদন করতে পারি । এটি নিম্নলিখিত পসিক্স সমাধানের দিকে নিয়ে যায়:

while true; do echo n; done | cp -Ri /origin /destination 2>/dev/null

0

ব্যবহার cp -rn <sourcedirname>/. <destdirname>

আর সুইচটি ডিরেক্টরিগুলিতে অনুলিপি তৈরি করে।

এন সুইচ (দীর্ঘ সংস্করণ নো-ক্লোবার) নিশ্চিত করে যে বিদ্যমান ফাইলগুলি কখনই অতিরিক্ত লিখিত না হয়।

/.সোর্সসিডেরনামের পরে ' ' নিশ্চিত করে যে এটি পূর্বের সমস্ত বিষয়বস্তু পরবর্তী কপির পরিবর্তে ডাস্টডিরমনামের অধীন একটি উপ-ডিরেক্টরিতে পরিণত হয় না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.