আমি 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_parents
preserve_existing
false
true
install
বা ব্যবহারে$(INSTALL)
ইনস্টলেশন কপি করার পদক্ষেপ এবং কিছু সাধারণ অনুলিপি পদক্ষেপ নয় বলে এই পদক্ষেপগুলিকে ফ্ল্যাগ করে। এটি দরকারী হতে পারে।