লিনাক্সে কীভাবে সিপি কমান্ড কার্যকরভাবে ব্যবহার করবেন [১৪ উদাহরণ]


সংক্ষিপ্ত: এই সহজে অনুসরণযোগ্য গাইডে, আমরা cp কমান্ডের কিছু বাস্তব উদাহরণ নিয়ে আলোচনা করব। এই নির্দেশিকা অনুসরণ করার পরে, ব্যবহারকারীরা কমান্ড লাইন ইন্টারফেস ব্যবহার করে লিনাক্সে সহজেই ফাইল এবং ডিরেক্টরি অনুলিপি করতে সক্ষম হবেন৷

লিনাক্স ব্যবহারকারী হিসাবে, আমরা অনুলিপি করা ফাইল এবং ডিরেক্টরিগুলির সাথে যোগাযোগ করি। অবশ্যই, আমরা কপি অপারেশন সঞ্চালনের জন্য একটি গ্রাফিক্যাল ফাইল ম্যানেজার ব্যবহার করতে পারি। যাইহোক, বেশিরভাগ লিনাক্স ব্যবহারকারীরা cp কমান্ড ব্যবহার করতে পছন্দ করেন এর সরলতা এবং সমৃদ্ধ কার্যকারিতার কারণে।

এই শিক্ষানবিস-বান্ধব গাইডে, আমরা cp কমান্ড সম্পর্কে শিখব। নাম অনুসারে, cp কমান্ডটি একটি প্রদত্ত পাথে ফাইল এবং ডিরেক্টরি অনুলিপি করতে ব্যবহৃত হয়।

এই নির্দেশিকা জুড়ে, আমরা ব্যবহারিক উদাহরণ ব্যবহার করে cp কমান্ডের ব্যবহার বুঝতে পারব যা প্রতিদিনের ভিত্তিতে ব্যবহার করা যেতে পারে।

তো চলুন শুরু করা যাক।

সুচিপত্র

Cp কমান্ড সিনট্যাক্স

cp কমান্ডের সিনট্যাক্স অন্যান্য লিনাক্স কমান্ডের অনুরূপ। একটি উচ্চ স্তরে, এটি দুটি অংশে বিভক্ত - বিকল্প এবং যুক্তি:

$ cp [OPTIONS] <SOURCE> <DEST>
$ cp [OPTIONS] <SOURCE-1> <SOURCE-2> ... <DIRECTORY>

উপরের সিনট্যাক্সে, বর্গাকার বন্ধনী ([]) ঐচ্ছিক আর্গুমেন্টের প্রতিনিধিত্ব করে যেখানে কৌণিক বন্ধনী (<>) বাধ্যতামূলক আর্গুমেন্টের প্রতিনিধিত্ব করে।

1. কিভাবে লিনাক্সে একটি ফাইল কপি করবেন

cp কমান্ডের একটি মৌলিক ব্যবহার হল একটি বর্তমান ডিরেক্টরিতে একটি ফাইল কপি করা। বেশিরভাগ সময় ব্যবহারকারীরা গুরুত্বপূর্ণ কনফিগারেশনের ব্যাকআপ নিতে এই অপারেশনটি করে থাকেন।

উদাহরণস্বরূপ, SSH কনফিগারেশন আপডেট করার আগে আমরা প্রায়ই /etc/ssh/sshd_config ফাইলের একটি ব্যাকআপ কপি তৈরি করি।

ব্যবহার বুঝতে, আসুন একটি সাধারণ ফাইল তৈরি করি:

$ touch file-1.txt

পরবর্তী, নিম্নলিখিত কমান্ড ব্যবহার করে ফাইলের একটি অনুলিপি তৈরি করুন:

$ cp file-1.txt file-2.txt

2. কপি কমান্ডের অগ্রগতি দেখান

আগের উদাহরণে, ফাইল কপি অপারেশন সফল হয়েছে কিনা তা যাচাই করতে আমরা ls কমান্ড ব্যবহার করেছি। যাইহোক, পূর্ববর্তী কমান্ডগুলির ফলাফল যাচাই করার জন্য আরও একটি কমান্ড ব্যবহার করার অর্থ হয় না।

এই ধরনের ক্ষেত্রে, আমরা -v বিকল্পটি ব্যবহার করে ভার্বোস মোড সক্ষম করতে পারি, যা প্রতিটি প্রক্রিয়াকৃত ফাইলের জন্য ডায়াগনস্টিক প্রদান করে।

নিচের কমান্ডটি ব্যবহার করে file-1.txt ফাইলের একটি কপি তৈরি করা যাক:

$ cp -v file-1.txt file-3.txt

উপরের আউটপুটে, তীরটি অনুলিপি করা ফাইলটিকে উপস্থাপন করে। বাম দিকের আর্গুমেন্ট হল সোর্স ফাইল যেখানে ডান পাশের আর্গুমেন্ট হল গন্তব্য ফাইল।

3. কিভাবে একাধিক ফাইল ডিরেক্টরিতে কপি করবেন

এখন পর্যন্ত আমরা একটি একক ফাইল এবং শুধুমাত্র বর্তমান কার্যকারী ডিরেক্টরির সাথে কাজ করেছি। যাইহোক, প্রকৃত উত্পাদন পরিবেশে, আমাদের প্রচুর সংখ্যক ফাইল নিয়ে কাজ করতে হবে। এই ধরনের পরিবেশে একটি সাধারণ ব্যবহারের ক্ষেত্রে একটি একক ডিরেক্টরিতে একাধিক ফাইল অনুলিপি করা।

স্পষ্টতই, আমরা এটি অর্জন করতে cp কমান্ডটি একাধিকবার চালাতে পারি, তবে এটি সবচেয়ে কার্যকর উপায় হবে না। এই ধরনের অপারেশন কার্যকরভাবে সম্পাদন করতে, আমরা cp কমান্ডের একটি বিকল্প সিনট্যাক্স ব্যবহার করতে পারি।

সুতরাং, প্রথমে, dir-1 নামে একটি নতুন ডিরেক্টরি তৈরি করুন:

$ mkdir dir-1

এখন, একক কমান্ড ব্যবহার করে dir-1 ডিরেক্টরিতে তিনটি ফাইল কপি করা যাক:

$ cp -v file-1.txt file-2.txt file-3.txt dir-1

উপরের আউটপুট দেখায় যে সমস্ত ফাইল dir-1 ডিরেক্টরিতে অনুলিপি করা হয়েছে। এছাড়াও, এটি লক্ষ্য করা গুরুত্বপূর্ণ যে, এই বিকল্প সিনট্যাক্স ব্যবহার করার জন্য ডিরেক্টরিটি অবশ্যই উপস্থিত থাকতে হবে এবং এটি কমান্ডের শেষ আর্গুমেন্ট হতে হবে।

4. কিভাবে ফাইল ওভাররাইট করা এড়ানো যায়

ডিফল্টরূপে, cp কমান্ডটি গন্তব্য ফাইলটিকে প্রতিস্থাপন করে, যার অর্থ এটি একই নামের সাথে গন্তব্যে উপস্থিত থাকলে ফাইলটিকে ওভাররাইট করবে। যাইহোক, আমরা -n বিকল্প ব্যবহার করে এই ডিফল্ট আচরণ অক্ষম করতে পারি।

এটি বুঝতে, আসুন বিদ্যমান ফাইলটি ওভাররাইট করার চেষ্টা করি:

$ cp -n -v file-1.txt file-2.txt

এই উদাহরণে, ফাইল-2.txt ফাইলটি ওভাররাইট করা হয়নি তা বোঝাতে আমরা -v বিকল্পটি ব্যবহার করেছি।

5. কিভাবে নিশ্চিতকরণের সাথে ফাইলটি ওভাররাইট করবেন

আগের উদাহরণে, আমরা দেখেছি কিভাবে গন্তব্য ফাইলের ওভাররাইটিং এড়ানো যায়। যাইহোক, কখনও কখনও আমরা একটি নিরাপদ উপায়ে ফাইল গন্তব্য ওভাররাইট করতে চাই।

এই ধরনের ক্ষেত্রে, আমরা কপি অপারেশনটিকে ইন্টারেক্টিভ করতে কমান্ডের -i বিকল্পটি ব্যবহার করতে পারি। এই বিকল্পটি সতর্কতা বার্তা দেখায় এবং ফাইলটি ওভাররাইট করার আগে ব্যবহারকারীর নিশ্চিতকরণের জন্য অপেক্ষা করে।

এটি ব্যাখ্যা করার জন্য, আসুন বিদ্যমান ফাইলটি ওভাররাইট করার চেষ্টা করি:

$ cp -i file-1.txt file-2.txt

cp: overwrite 'file-2.txt'?

আমরা দেখতে পাচ্ছি, কমান্ড নিশ্চিতকরণের জন্য অপেক্ষা করছে। অন্যান্য লিনাক্স কমান্ডের মতো, আমরা চালিয়ে যেতে y ব্যবহার করতে পারি বা অপারেশন বাতিল করতে n ব্যবহার করতে পারি।

cp কমান্ডের এই ডিফল্ট অ-ইন্টারেক্টিভ আচরণ খুব নিরাপদ নয়। ব্যবহারকারী ভুল করে একটি গুরুত্বপূর্ণ কনফিগারেশন ওভাররাইট করতে পারে এমন সম্ভাবনা রয়েছে। তাই কিছু লিনাক্স ডিস্ট্রিবিউশন অ্যালিয়াস কমান্ড ব্যবহার করে ডিফল্টরূপে ইন্টারেক্টিভ আচরণ প্রয়োগ করে:

$ alias cp='cp -i'

6. উৎসটি নতুন হলেই ফাইল ওভাররাইট করুন

আগের উদাহরণে আমরা দেখেছি কিভাবে ইন্টারেক্টিভ মোড ব্যবহার করতে হয়। যাইহোক, কখনও কখনও, একজন ব্যবহারকারী অসাবধানতাবশত নতুন ফাইলটি ওভাররাইট করতে পারে।

এই ধরনের ত্রুটি-প্রবণ কেস এড়াতে, আমরা -u বিকল্পটি ব্যবহার করতে পারি, যা শুধুমাত্র কপি অপারেশনের চেষ্টা করে যদি উৎসটি গন্তব্যের চেয়ে নতুন হয় বা ফাইলটি গন্তব্যে উপস্থিত না থাকে।

প্রথমে, উৎস ফাইলের টাইমস্ট্যাম্প আপডেট করুন:

$ touch -t 10101010 file-1.txt
$ ls -l file-1.txt

উপরের উদাহরণে, আমরা 10-Oct-2010-এ ফাইলের টাইমস্ট্যাম্প সেট করতে স্পর্শ কমান্ডের -t বিকল্পটি ব্যবহার করেছি।

এর পরে, চলুন বর্তমান সময়ে গন্তব্য ফাইলের টাইমস্ট্যাম্প আপডেট করি:

$ touch file-2.txt

এখন, -u বিকল্পটি ব্যবহার করে কপি অপারেশন করার চেষ্টা করা যাক:

$ cp -u -v file-1.txt file-2.txt

এখানে, আমরা দেখতে পাচ্ছি যে কপি অপারেশন করার চেষ্টা করা হয়নি কারণ গন্তব্য ফাইলটি উৎসের চেয়ে নতুন।

অবশেষে, আসুন উত্স এবং গন্তব্য আর্গুমেন্টগুলি অদলবদল করি এবং অনুলিপি অপারেশনটি সম্পাদন করি:

$ cp -u -v file-2.txt file-1.txt

উপরের আউটপুটে, আমরা লক্ষ্য করতে পারি যে কপি অপারেশন সফল হয়েছে কারণ সোর্স ফাইলটি গন্তব্যের চেয়ে নতুন।

7. ওভাররাইট করার আগে কিভাবে ফাইল ব্যাকআপ করবেন

আমরা cp কমান্ডকে গন্তব্য ফাইলটি ওভাররাইট করার আগে তার ব্যাকআপ নিতে নির্দেশ দিতে পারি। এটি অর্জন করতে আমরা --backup বিকল্পটি ব্যবহার করতে পারি, যা স্বয়ংক্রিয় ব্যাকআপগুলি সম্পাদন করে।

$ cp --backup=numbered -v file-1.txt file-2.txt

এই উদাহরণে, আমরা সংখ্যাযুক্ত ব্যাকআপ নীতি ব্যবহার করেছি। এই নীতি ব্যাকআপ ফাইলের নামগুলিতে ক্রমবর্ধমান সংখ্যা ব্যবহার করে৷

এটি বোঝার জন্য, আসুন একই কমান্ড একাধিকবার কার্যকর করি এবং আউটপুটটি পর্যবেক্ষণ করি:

$ cp --backup=numbered -v file-1.txt file-2.txt
$ cp --backup=numbered -v file-1.txt file-2.txt
$ cp --backup=numbered -v file-1.txt file-2.txt

8. ফাইল ওভাররাইট করার জন্য কপি জোর করে কিভাবে

আগের কয়েকটি উদাহরণে, আমরা দেখেছি কিভাবে একটি নিরাপদ উপায়ে ফাইলটি ওভাররাইট করা যায়। যাইহোক, কিছু বিরল ক্ষেত্রে, ফাইলটি ওভাররাইট করা প্রয়োজন। যাইহোক, প্রতিবার অপারেশন সফল হবে এমন কোন গ্যারান্টি নেই।

উদাহরণস্বরূপ, যদি গন্তব্য ফাইলের লেখার অনুমতি না থাকে তবে অনুলিপি অপারেশন ব্যর্থ হবে। একটি উদাহরণ দিয়ে এটি ব্যাখ্যা করা যাক।

প্রথমে, গন্তব্য ফাইলের অনুমতি পরিবর্তন করুন:

$ chmod 444 file-2.txt
$ ls -l file-2.txt

এখন, ফাইল-2.txt ফাইলটি ওভাররাইট করার চেষ্টা করা যাক:

$ cp file-1.txt file-2.txt

উপরের আউটপুটে, আমরা দেখতে পাচ্ছি যে কমান্ডটি ব্যর্থ হয়েছে অনুমতি অস্বীকার করা ত্রুটির সাথে।

এই সীমাবদ্ধতা কাটিয়ে উঠতে, আমরা -f বিকল্পটি ব্যবহার করতে পারি, যা গন্তব্য ফাইলগুলি মুছে দেয় এবং যদি গন্তব্য ফাইলটি খোলা না যায় তবে অনুলিপি অপারেশন করার চেষ্টা করে।

এখন, ফাইলটিকে জোর করে ওভাররাইট করতে -f বিকল্পটি ব্যবহার করা যাক:

$ cp -f -v file-1.txt file-2.txt

9. অনুলিপি করার আগে গন্তব্য ফাইল কিভাবে সরান

আগের উদাহরণে, আমরা দেখেছি কীভাবে গন্তব্য ফাইলটি পরিচালনা করার সময় কোনও ত্রুটি থাকলে তা সরিয়ে ফেলতে হয়। যাইহোক, কখনও কখনও প্রয়োজন হয় প্রথমে গন্তব্য ফাইলটি সরিয়ে তারপর অনুলিপি অপারেশন সঞ্চালন করা।

এই ধরনের প্রয়োজনীয়তা পূরণ করতে, আমরা --remove-destination বিকল্পটি ব্যবহার করতে পারি।

$ cp --remove-destination -v file-1.txt file-2.txt

উপরের আউটপুটে, আমরা দেখতে পাচ্ছি যে cp কমান্ডটি প্রথমে গন্তব্য ফাইলটি সরিয়ে দেয় এবং তারপর কপি অপারেশনটি সম্পাদন করে।

10. কপি করার পরিবর্তে কিভাবে একটি হার্ড লিঙ্ক ফাইল তৈরি করবেন

আমরা সোর্স ফাইলের একটি নতুন কপি তৈরি করার পরিবর্তে একটি হার্ড লিঙ্ক তৈরি করতে পারি। এই বিকল্পটি একটি গুরুত্বপূর্ণ ভূমিকা পালন করে যখন ডিস্কে স্থানের অভাব থাকে।

সুতরাং, আসুন একটি হার্ড লিঙ্ক তৈরি করতে -l বিকল্পটি ব্যবহার করি:

$ cp -l -v file-1.txt file-4.txt

এখন, হার্ড লিঙ্ক যাচাই করতে উভয় ফাইলের ইনোড নম্বর পরীক্ষা করা যাক:

$ ls -i1 file-1.txt file-4.txt

উপরের আউটপুটে, প্রথম কলামের সংখ্যাগুলি ইনোড সংখ্যাগুলিকে উপস্থাপন করে।

11. কিভাবে অনুলিপি করার পরিবর্তে একটি সফট লিঙ্ক ফাইল তৈরি করবেন

একইভাবে, আমরা নীচে দেখানো -s বিকল্পটি ব্যবহার করে একটি নতুন অনুলিপি তৈরি করার পরিবর্তে একটি সফট লিঙ্ক তৈরি করতে পারি:

$ cp -s -v file-1.txt file-5.txt

এখন, আসুন যাচাই করি যে প্রতীকী লিঙ্কটি সঠিকভাবে তৈরি করা হয়েছে:

$ ls -l file-5.txt

উপরের আউটপুটে, শেষ কলামগুলি প্রতীকী লিঙ্ক সম্পর্ককে উপস্থাপন করে।

12. অনুলিপি করার সময় ফাইলের বৈশিষ্ট্যগুলি কীভাবে সংরক্ষণ করবেন

ফাইলের সাথে যুক্ত বিভিন্ন বৈশিষ্ট্য রয়েছে, যেমন এর অ্যাক্সেসের সময়, পরিবর্তনের সময়, অনুমতি ইত্যাদি। ডিফল্টরূপে, ফাইলটি অনুলিপি করার সময় এই বৈশিষ্ট্যগুলি সংরক্ষণ করা হয় না। এই ডিফল্ট আচরণ ওভাররাইড করতে আমরা -p বিকল্পটি ব্যবহার করতে পারি।

এটি বুঝতে, প্রথমে ফাইল-1.txt-এর টাইমস্ট্যাম্প আপডেট করুন:

$ touch -t 10101010 file-1.txt

এখন, এর সমস্ত বৈশিষ্ট্য সংরক্ষণ করে এই ফাইলটির একটি অনুলিপি তৈরি করা যাক:

$ cp -p -v file-1.txt file-6.txt

অবশেষে, ফাইল-6.txt ফাইলের টাইমস্ট্যাম্প যাচাই করুন:

$ ls -l file-6.txt

13. কিভাবে অনুলিপি অপারেশন পুনরাবৃত্তিমূলকভাবে সম্পাদন করতে হয়

এখন পর্যন্ত আমরা দেখেছি কিভাবে একটি ফাইল কপি করা যায়। যাইহোক, প্রায়শই আমাদের নির্দিষ্ট ডিরেক্টরির সমস্ত ফাইল এবং সাব-ডিরেক্টরি কপি করতে হয়।

এই ধরনের ক্ষেত্রে, আমরা হয় -r বা -R বিকল্প ব্যবহার করে রিকার্সিভ মোড ব্যবহার করতে পারি।

সুতরাং, আসুন একটি ডিরেক্টরি তৈরি করি এবং এর অধীনে কয়েকটি ফাইল এবং সাব-ডিরেক্টরি যোগ করি:

$ mkdir -p dir-1/dir-2
$ touch dir-1/file-1.txt dir-1/dir-2/file-2.txt

এর পরে, ডিরেক্টরি কাঠামো সঠিকভাবে তৈরি করা হয়েছে তা যাচাই করুন:

$ tree dir-1

এখন, নিচের কমান্ডটি ব্যবহার করে ডাইরেক্টরি dir-1 অনুলিপি করা যাক:

$ cp -r -v dir-1 dir-3

অবশেষে, যাচাই করুন যে সমস্ত ফাইল এবং সাব-ডিরেক্টরি সফলভাবে অনুলিপি করা হয়েছে:

$ tree dir-3

14. কিভাবে একাধিক ডিরেক্টরি কপি করবেন

ফাইলের মতো, আমরা একটি একক কমান্ড ব্যবহার করে পুনরাবৃত্তিমূলক একাধিক ডিরেক্টরি অনুলিপি করতে পারি। যাইহোক, এটি অর্জনের জন্য গন্তব্য ডিরেক্টরিটি অবশ্যই উপস্থিত থাকতে হবে এবং এটি কমান্ডের শেষ আর্গুমেন্ট হতে হবে। একটি উদাহরণ দিয়ে বিষয়টি বোঝা যাক।

প্রথমে, একটি ডিরেক্টরি একটি নতুন ডিরেক্টরি তৈরি করুন:

$ mkdir dir-4

এখন, নিচের কমান্ডটি ব্যবহার করে dir-4 ডিরেক্টরিতে dir-1 এবং dir-3 ডিরেক্টরিগুলি অনুলিপি করি:

$ cp -r -v dir-1 dir-3 dir-4

একইভাবে, আমরা একই ফলাফল অর্জন করতে কমান্ডের -t বিকল্পটি ব্যবহার করতে পারি। এই বিকল্পটি আমাদের গন্তব্য ডিরেক্টরি নির্দিষ্ট করার অনুমতি দেয়। সুতরাং আমরা এটিকে প্রথম যুক্তি হিসাবেও ব্যবহার করতে পারি:

$ cp -t dir-4 -r -v dir-1 dir-3

এই নিবন্ধে, আমরা আলোচনা করেছি কিভাবে cp কমান্ড ব্যবহার করে ফাইল এবং ডিরেক্টরি কপি করা যায়। লিনাক্স সিস্টেমের সাথে কাজ করার সময় নতুনরা দৈনন্দিন জীবনে এই উদাহরণগুলি উল্লেখ করতে পারেন।

তুমি এটাও পছন্দ করতে পারো:

  • প্রগতি – (cp, mv, dd, tar) কমান্ডের জন্য অনুলিপি করা ডেটার শতাংশ দেখান
  • 'pv' কমান্ড ব্যবহার করে (কপি/ব্যাকআপ/কম্প্রেস) ডেটার অগ্রগতি পর্যবেক্ষণ করুন
  • অ্যাডভান্সড কপি কমান্ড – লিনাক্সে বড় ফাইল/ফোল্ডার কপি করার সময় প্রগ্রেস বার দেখায়

লিনাক্সে cp কমান্ডের অন্য কোন সেরা উদাহরণ সম্পর্কে আপনি কি জানেন? নীচের মন্তব্যে আপনার মতামত আমাদের জানান৷