এই টিউটোরিয়াল আপনাকে শিখাবে লিনাক্স cp কমান্ড ব্যবহার করা — যে কমান্ডটি ফাইলগুলো একটি ডিরেক্টরি থেকে অন্য ডিরেক্টরিতে কপি করে।
লিনাক্স ডেভেলপারদের পছন্দের প্ল্যাটফর্ম। আপনি যদি লিনাক্সে নতুন হন, তবে অনেক দের না হয়ে আপনাকে একটি জায়গা থেকে অন্য জায়গায় ফাইল কপি করা শুরু করতে হবে — লিনাক্স cp কমান্ডের ব্যাখ্যা এবং কিছু টিপস ও ট্রিক্স জানতে পড়তে থাকুন।
cp কমান্ড
cp কমান্ডের একটি সহজ উদ্দেশ্য আছে — ফাইল ও ফোল্ডার এক জায়গা থেকে অন্য জায়গায় কপি করা।
এটি লিনাক্স সিস্টেমের সাথে কানেক্টেড যেকোনো ফাইল সিস্টেমে এটি করতে পারে এবং অরিজিনাল ফাইলটি সংরক্ষণ করে থাকবে, সাথে কপি করা ফাইলগুলো রিনেম ও ওভাররাইট করার অপশন দেবে।
cp কমান্ডের সিনট্যাক্স তার ম্যানুয়াল পেজ অনুযায়ী:
cp [OPTIONS] SOURCE DESTINATION
cp কমান্ড অপশন
কপি কমান্ড দেয়ার সময় আপনি স্পেসিফাই করতে পারবেন যে ইতিমধ্যে বিদ্যমান ফাইলগুলো কী হবে, এবং ডিরেক্টরি কন্টেন্ট কপি হবে কিনা। এখানে কিছু সাধারণ ব্যবহৃত অপশন:
-b ব্যাকআপ (প্রতিটি ডেস্টিনেশন ফাইলের ব্যাকআপ তৈরি করে)
-f ফোর্স (যদি বিদ্যমান ডেস্টিনেশন ফাইল ওপেন করা না যায়, তবে সেটি রিমুভ করে আবার চেষ্টা করে)
-i ইন্টারঅ্যাক্টিভ (ওভাররাইট করার আগে প্রম্পট করে)
-n নো-ক্লোবার (বিদ্যমান ফাইল ওভাররাইট না করে)
-p প্রিজার্ভ (মোড, ওনারশিপ, টাইমস্ট্যাম্প সংরক্ষণ করে)
-r রিকার্সিভ (ডিরেক্টরি এবং তার কন্টেন্ট কপি করে)
-u আপডেট (কপি করে শুধু যখন SOURCE ফাইল ডেস্টিনেশন ফাইল থেকে nieuwer, বা ডেস্টিনেশন ফাইল অনুপস্থিত)
-v ভার্বোস (কী করা হচ্ছে তা ব্যাখ্যা করে)
cp ব্যবহার করে ফাইল ও ডিরেক্টরি কপি করার কমান্ড উদাহরণ
একটি সিঙ্গেল ফাইল কপি করা
সাধারণভাবে cp কমান্ড লিখুন তারপর সোর্স ও ডেস্টিনেশন ফাইলের পথ, একক স্পেস দিয়ে আলাদা করে:
cp /path/to/source/file.txt /path/to/destination/file.txt
একটি ডিরেক্টরি এবং তার কন্টেন্ট কপি করা
cp কমান্ড লিখুন, -r (রিকার্সিভ) অপশন দিন, এবং সোর্স ও ডেস্টিনেশন ডিরেক্টরির পথ, একক স্পেস দিয়ে আলাদা করে। পুরো সোর্স ডিরেক্টরি তার অরিজিনাল নামের সাথে ডেস্টিনেশন ডিরেক্টরিতে কপি হবে:
cp -r /path/to/source_directory /path/to/destination_directory
একাধিক ফাইল বা ডিরেক্টরি কপি করা
একাধিক ফাইল ডেস্টিনেশন ডিরেক্টরিতে কপি করতে, সেগুলো সব লিস্ট করুন স্পেস দিয়ে আলাদা করে — দেওয়া শেষ পথটি ডেস্টিনেশন হিসেবে বিবেচিত হবে:
cp source_file_1.txt source_file_2.txt path/to/destination_directory
একাধিক ডিরেক্টরি কপি করতেও একই পদ্ধতি কাজ করে যদি -r (রিকার্সিভ) অপশন দেন:
cp -r source_directory_1/ source_directory_2/ /path/to/destination_directory
সোর্স ডিরেক্টরির সকল ফাইল ও ডিরেক্টরি অন্য ডিরেক্টরিতে কপি করতে ওয়াইল্ডকার্ড (*) ব্যবহার করুন:
cp -r /path/to/source/* /path/to/destination
নির্দিষ্ট ফাইলনেম বা এক্সটেনশন والے ফাইল কপি করা
ওয়াইল্ডকার্ড (*) ব্যবহার করে নির্দিষ্ট নাম বা এক্সটেনশন মিল রাখা ফাইল কপি করা যায়। সোর্স ডিরেক্টরি থেকে সকল JPG ইমেজ ডেস্টিনেশন ডিরেক্টরিতে কপি করার পদ্ধতি:
cp /path/to/source/*.jpg path/to/source/*.JPG /path/to/destination_directory
সিমলিংক ফাইল কপি করা
সিমলিংক ফাইলগুলো ডেটা ধারণ করে না, শুধু ডিস্কে অন্য ফাইলের রেফারেন্স। cp কমান্ড ব্যবহার করার সময় ডিফল্টভাবে এগুলো বাদ পড়ে। এগুলো ইনক্লুড করতে -d অপশন ব্যবহার করুন:
cp –d source_file_1.txt /path/to/destination_directory
শুধু ৭ দিনের কম পুরনো ফাইল কপি করা
আপনি cp কমান্ডকে অন্যান্য কমান্ডের সাথে কম্বাইন করে কী কপি করবেন उसে বেশি কন্ট্রোল পেতে পারেন। এই উদাহরণে find কমান্ড দিয়ে ফিল্টার করে শুধু ৭ দিনের কম পুরনো ফাইল কপি করা হয়েছে, তারপর cp কমান্ড এক্সিকিউট করা হয়েছে:
find /path/to/files* -mtime -7 -exec cp {} /mnt/nas/ \;
কপির ফলাফল দেখা
ডেস্টিনেশন ডিরেক্টরির কন্টেন্ট ls কমান্ড দিয়ে দেখতে পারেন:
ls -hl /path/to/destination_directory
উপসংহার
ফাইল কপি করা দিনদিনের ضرুরী কাজ এবং সিনট্যাক্স দ্রুত আপনার স্বাভাবিক হয়ে যাবে। অন্যান্য সাধারণ লিনাক্স কমান্ড লাইন টাস্কের জন্য আমাদের অন্যান্য আর্টিকেল চেক করুন।