আমি যখন ব্যবহার করি
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?