আমি install -dডিরেক্টরি তৈরি করতে এবং install -cএকটি ফাইল অনুলিপি করতে ব্যবহৃত অনেক জায়গায় দেখেছি । কেন ব্যবহার করবেন না mkdirএবং cp? ব্যবহার করে কি কোনও সুবিধা আছে install?
আমি install -dডিরেক্টরি তৈরি করতে এবং install -cএকটি ফাইল অনুলিপি করতে ব্যবহৃত অনেক জায়গায় দেখেছি । কেন ব্যবহার করবেন না mkdirএবং cp? ব্যবহার করে কি কোনও সুবিধা আছে install?
উত্তর:
এটি আপনি কী করছেন তার উপর নির্ভর করে।
installকমান্ড স্বাভাবিকভাবে ইনস্টলেশন স্ক্রিপ্ট প্যাকেজ এবং আপনার সিস্টেম একটি বাইনারি ইনস্টল করার জন্য সোর্স কোড সঙ্গে আসা ব্যবহার করা হয়। এটি অন্য কোনও ফাইল বা ডিরেক্টরি ইনস্টল করতেও ব্যবহার করা যেতে পারে। ইনস্টল করার জন্য ফাইলটির নতুন অনুমতি নির্দিষ্ট করার জন্য আপনার কাছে থাকা বিকল্পগুলি -dএবং -cবিকল্পগুলি ছাড়াও , একই ফলাফলটি পেতে আপনাকে -mএকটি cpএবং একটি chmodকরতে হবে না। এই ক্ষেত্রে:
install -m644 "$srcdir/$pkgname-$pkgver-linux64" "$pkgdir/opt/$pkgname"
এছাড়াও আপনি অপশন আছে -gএবং -oযথাক্রমে লক্ষ্য গ্রুপ এবং মালিক, সেট করার জন্য। এটি পৃথক কল এড়ানো chown। সাধারণভাবে, installআপনার স্ক্রিপ্টটি সংক্ষিপ্ত করে ব্যবহার করে ফাইল তৈরি, অনুলিপি, মোড সেটিং এবং সম্পর্কিত স্টাফ অনেকের পরিবর্তে এক আদেশে আরও সংক্ষিপ্ত করে তোলে।
রেফারেন্সের জন্য, দেখুন man install। ব্যবহারের জন্য, কিছু প্যাকেজ উত্স কোড সহ যে কোনও ইনস্টলেশন স্ক্রিপ্ট প্রেরণা দেখুন ।
"ইনস্টল" সাধারণত নিম্নলিখিত ক্রিয়াগুলি একত্রিত করে:
সুতরাং, এটি ইউনিক্স পদ্ধতির অনুসরণ করেছে যে কোনও বিল্ডিং সরঞ্জাম দ্বারা কোনও ফাইলের কাজ করার স্থানে ইনস্টল করার কোনও একক কিন্তু সম্পূর্ণ পদক্ষেপের জন্য একটি সরঞ্জাম তৈরি করা হবে।
আমি বর্ণিত হিসাবে সম্পূর্ণ ধারণাটি BSD সিস্টেমে প্রয়োগ করা হয় (তথাকথিত "xinstall" সংস্করণে); আমি এখানে "নিরাপদ অনুলিপি" মোড (পারমাণবিক নামকরণের নতুন সংস্করণ) এর জন্য অতীব গুরুত্বপূর্ণ হিসাবে বিবেচনা করি। লিনাক্স সিস্টেমগুলি (কোর্টিলগুলি থেকে) এই গুরুত্বপূর্ণ অংশটি মিস করে এবং বাইস্ট্যান্ডার প্রক্রিয়াটি মুছে ফেলা ও পুনরায় খোলার মধ্যে দৌড়ঝাঁপ করে; তবে এটি প্যাকেজ পরিচালকদের দ্বারা আচ্ছাদিত করা যেতে পারে।
ব্যবহার সম্পর্কে এখানে পূর্ববর্তী বর্ণনাগুলি ছাড়াও লিনাক্সের মধ্যে cpএবং এর মধ্যে নিম্ন স্তরের পার্থক্য রয়েছে install। যদি কোনও বিদ্যমান ফাইলের অনুলিপি করা হয় cpতবে ফাইলের বিদ্যমান ইনোডকে ওভাররাইট করে, installসর্বদা একই ফাইলের নামের জন্য একটি নতুন ইনোড তৈরি করে।
চলমান বাইনারিটির একটি নতুন সংস্করণ ইনস্টল করার সময় এটি একটি পার্থক্য করে। ব্যবহারের cpফলে একটি EBUSY ত্রুটি দেখা দেয়, এবং installসফল হবে। চলমান বাইনারি এখনও পুরানো সংস্করণ ব্যবহার করবে, তবে প্রোগ্রামটি পুনরায় চালু করা হলে নতুন সংস্করণ ব্যবহার করা হবে।
যদি প্রশ্নে থাকা ডিরেক্টরিটি ইতিমধ্যে বিদ্যমান থাকে:
mkdir -p মালিকানা এবং ফাইল মোড বিট সেট করার চেষ্টা করবেinstall -d মালিকানা এবং ফাইল মোড বিট সেট করার চেষ্টা করবে নাএটি জিএনইউ কোর্টিলগুলির জন্য mkdirএবং installথেকে । তারা উভয়ই একই ফাংশনটি ব্যবহার করে তবে পরামিতিটি যথাক্রমে সেট করা হয় বা হয়।make_dir_parentspreserve_existingfalsetrue
installবা ব্যবহারে$(INSTALL)ইনস্টলেশন কপি করার পদক্ষেপ এবং কিছু সাধারণ অনুলিপি পদক্ষেপ নয় বলে এই পদক্ষেপগুলিকে ফ্ল্যাগ করে। এটি দরকারী হতে পারে।