cp
কমান্ডের শুরুতে সর্বদা ফাইল (গুলি) কমান্ডের শেষে ফাইল বা ডিরেক্টরিতে অনুলিপি করা হবে। স্ল্যাশ আর্গুমেন্টগুলিতে সত্যিই খুব বেশি কিছু করে না, যদি না তত যুক্তি একটি ডিরেক্টরিতে একটি syMLink না হয়। তারপরে স্ল্যাশ থাকার পরে এটি একটি ডিরেক্টরি হিসাবে দেখাবে এবং স্ল্যাশ বাদ দিলে লিঙ্কটি অনুলিপি করা হবে।
আপনি উদাহরণস্বরূপ যে কোনও সাব-ডাইরেক্টরিটি অনুলিপি করতে চান তা ধরে নিচ্ছেন:
cp -r /home/src/somedir /dest
এবং
cp -r /home/src/somedir/* /dest
প্রথমটি ডিরেক্টরিটি পায় /home/src/somedir
এবং সেই যুক্তিটি, ডিরেক্টরিটি নিজেই এবং এর সমস্ত বিষয়বস্তু, শেষ আর্গে অনুলিপি করে /dest
। এটি প্রয়োজনে somedir
ডিরেক্টরি তৈরি করবে /dest
এবং এটি ইতিমধ্যে বিদ্যমান থাকলে এটি ব্যবহার করবে।
দ্বিতীয় যুক্তটি *
প্রথম যুক্তির শেষে যুক্ত করে, যা শেলটি প্রতিটি ফাইল হিসাবে প্রসারিত হবে যা শুরু হয় .
না /home/src/somedir
এবং সেগুলি /dest
আগে থেকেই আছে তা বিবেচনা না করে সমস্ত ফাইল এবং ডিরেক্টরিগুলি অনুলিপি করবে (কিছু পতাকা ব্যতীত cp
এটি তৈরি করবে) একটি বিদ্যমান ফাইলের মতো গন্তব্যস্থলে একই ফাইলগুলি ওভাররাইট করার অনুরোধ জানানো হবে)।
এই উত্তরের মন্তব্যগুলিতে যেমন উল্লেখ করা হয়েছে, *
ডিরেক্টরিতে সমস্ত ফাইল দখল করতে সমস্যা আছে । একটি বিকল্প tar
আপনার জন্য অনুলিপি করতে ব্যবহার করা হবে
tar -c -C /home/src/somedir . | tar -x -C /dest
somedir
এটি -C
প্রথমে সেই ডিরেক্টরিটিতে স্যুইচ করতে ব্যবহার করে অগ্রণী পথ ছাড়াই একটি টার ফাইল তৈরি করবে । ডিফল্টরূপে tar
মুদ্রণ করা হবে stdout
যার পরে আমরা প্রথমে tar
কাঙ্ক্ষিত /dest
ডিরেক্টরিতে স্যুইচ করে এটি নিষ্কাশন করতে অন্যটিতে পাইপ করব । এটি ফাইলের অনেকগুলি বৈশিষ্ট্যও সংরক্ষণ করবে, যা cp
পাশাপাশি করতে পারে।
cp -r /home/src/somedir /dest/
উভয় অবস্থারই সমাধান করা উচিত, হয় বিদ্যমান ফোল্ডারে তৈরি বা মার্জ করে