আমি যখন ব্যবহার করি
cp -R inputFolder outputFolder
ফলাফলটি প্রাসঙ্গিক-নির্ভর :
- যদি
outputFolder
অস্তিত্ব না থাকে তবে এটি তৈরি করা হবে এবং ক্লোন্ড ফোল্ডার পাথ হবেoutputFolder
। - যদি
outputFolder
উপস্থিত থাকে তবে তৈরি ক্লোনটি হবেoutputFolder/inputFolder
এটি ভয়াবহ , কারণ আমি কিছু ইনস্টলেশন স্ক্রিপ্ট তৈরি করতে চাই এবং ব্যবহারকারী যদি ভুল করে এটি দু'বার চালায় তবে তিনি outputFolder
প্রথমবার তৈরি করে ফেলবেন, দ্বিতীয় বারে আবার সমস্ত জিনিস আবার তৈরি হবে outputFolder/inputFolder
।
- আমি সর্বদা প্রথম আচরণটি চাই: মূলটির (ক্লোবা হিসাবে) পাশে একটি ক্লোন তৈরি করুন।
- আমি
cp
পোর্টেবল হতে ব্যবহার করতে চাই (উদাহরণস্বরূপ মিংডাব্লুrsync
পাঠানো হয়নি) - আমি যাচাই করেছিলাম
cp -R --parents
তবে এটি ডিরেক্টরি ট্রি পর্যন্ত পুরো পথটি পুনরায় তৈরি করে (যাতে ক্লোনটিoutputFolder
কিন্তু হবে নাsome/path/outputFolder
) --remove-destination
বা--update
ক্ষেত্রে 2 কিছু পরিবর্তন না করে, তবুও জিনিসগুলিতে অনুলিপি করা হয়outputFolder/inputFolder
এর অস্তিত্বের জন্য প্রথমে outputFolder
(যদি ফোল্ডারটি তখন উপস্থিত না থাকে ...) বা ব্যবহার না করে এটি করার উপায় আছে rm -rf outputFolder
?
এটি করার সম্মত, বহনযোগ্য ইউনিক্স উপায় কী?
rsync
করবেন না ?
cp
হয় তবে দুটি tar
কমান্ডের মধ্যে পাইপ দেওয়া গাছগুলি অনুলিপি করার একটি দুর্দান্ত নির্ভরযোগ্য উপায়।
rsync
পাঠানো হয়নি।
tar -C input -cf - . | tar -C output -xf -
কাজ করে। -C
ওয়ার্কিং ডিরেক্টরি পরিবর্তন করে, তবে এটি একটি আদর্শ বিকল্প নয়, সুতরাং যদি এটি সমর্থন না করে তবে আপনার সঠিক দুটি ডাইরেক্টরিগুলি শুরু করার জন্য ডাইরেক্ট ওয়ার্কিং ডিরেক্টর চালনা করতে হবে, উদাহরণস্বরূপ ( cd input && tar -cf - . ) | ( cd output && tar -xf - )
আপনি উইন্ডোজের সাথে যদি ডিল করছেন তবে আমি কেবল রোইমার উত্তরটি ব্যবহার করব।
mv
?