উত্তর:
ম্যান পৃষ্ঠা থেকে নেওয়া :
-n, --no-clobber
do not overwrite an existing file (overrides a previous -i option)
উদাহরণ:
cp -n myoldfile.txt mycopiedfile.txt
cp -n source.txt destination.txt || true
cp -n
উবুন্টু ১২.০৪-তে ফাইলটি উপস্থিত থাকলে @ গ্যালানানড্রু ত্রুটি সহ প্রস্থান করে না।
ব্যবহার বিবেচনা করুন rsync
।
rsync -a -v --ignore-existing src dst
মন্তব্য অনুসারে rsync -a -v src dst
সঠিক নয় কারণ এটি বিদ্যমান ফাইলগুলি আপডেট করবে।
--ignore-existing
বিদ্যমান ফাইলগুলি ওভাররাইট হওয়া থেকে রোধ করতে আপনি পতাকাটি যুক্ত করতে চান ।
rsync -a -v --ignore-existing <src> <dst>
হ'ল cp -u
উপরের পরিবর্তে সত্যই সঠিক উত্তর ।
এটি রেডহ্যাটটিতে কাজ করবে:
false | cp -i source destination 2>/dev/null
ওভাররাইট করা আপডেট করা এবং না করা কিছু আলাদা।
false
এখানে কি করে ?
-i
প্রশ্নের উত্তরসমূহ ।
এমন লোকেরা যা খুঁজে পান যে কোনও 'এন' বিকল্প নেই (রেডহ্যাটে আমার মতো) আপনি ব্যবহার করতে পারেন cp -u
কেবলমাত্র ফাইলটি লিখতে যদি উত্সটি বিদ্যমানের চেয়ে নতুন হয় (বা কোনও বিদ্যমান নেই)।
[সম্পাদনা] মন্তব্যে উল্লিখিত হিসাবে, এটি পুরানো ফাইলগুলি ওভাররাইট করে দেবে, তবে ওপি যা চেয়েছিল ঠিক তাই নয়। তার জন্য সিলিংয়ের উত্তরটি ব্যবহার করুন।
-u
আসলে উদ্দেশ্যটির সাথে খাপ খায় না।
অ্যালপাইন লিনাক্স: নীচের উত্তরটি কেবলমাত্র একক ফাইলের ক্ষেত্রে: আলপাইনটিতে cp -n
কাজ করছে না (এবং false | cp -i ...
খুব) তাই আমার ক্ষেত্রে সলিউশন কাজ করছে যা আমি পেয়েছি তা হ'ল:
if [ ! -f env.js ]; then cp env.example.js env.js; fi
উপরের উদাহরণে যদি env.js
ফাইল বিদ্যমান না থাকে তবে আমরা অনুলিপি env.example.js
করি env.js
।