লিনাক্সে ফাইলের নাম এবং। / ফাইলের মধ্যে পার্থক্য কী


10

মধ্যে পার্থক্য কি filenameএবং ./filename? কোন পরিস্থিতিতে একজনকে অন্যের চেয়ে বেশি পছন্দ করা হয়?

উত্তর:


18

ডেটাফাইলেসগুলির জন্য, এটি কোনও পার্থক্য করে না - উভয় বিবৃতি আপনার বর্তমান ডিরেক্টরিতে ডেটা ফাইলকে রেফারেন্স করবে। (উদাহরণস্বরূপ, cat filenameএবং cat ./filenameশব্দার্থগতভাবে অভিন্ন)

এটি ভিন্ন কাহিনী যদি প্রশ্নে থাকা ফাইলের নামটি একটি নির্বাহযোগ্যকে বোঝায় , অর্থাৎ কমান্ড লাইনে আপনি টাইপ করা প্রথম (বা কেবলমাত্র) জিনিস। ./filenameআপনার বর্তমান ডিরেক্টরিতে এক্সিকিউটেবলের সন্ধান করবে এবং অন্য কোথাও নেই। filenameঅন্যদিকে, পরিবেশের পরিবর্তনশীলকে মূল্যায়ন করবে PATHএবং filenameএতে সঞ্চিত প্রতিটি ডিরেক্টরি অনুসন্ধান করবে (যা আপনার বর্তমান ডিরেক্টরি অন্তর্ভুক্ত করতে পারে বা নাও পারে)।

./filename(বা অন্য কোনও /path/to/filename) এমনভাবে অগ্রাধিকার দেওয়া হয় যখন আপনি কোনও নির্দিষ্ট এক্সিকিউটেবল কার্যকর করতে চান , আপনার PATH তে পাওয়া প্রথমটি নয়।


6

আপনি যদি কোনও প্রোগ্রাম চালাচ্ছেন, filenameআপনার মধ্যে পাওয়া প্রথমটি চালানোর জন্য বলে $PATHএবং দ্বিতীয়টি বর্তমান ডিরেক্টরিতে এটি চালানোর জন্য বলে।

যদি আপনি সেই ফাইলনামটিকে কোনও প্রোগ্রামের হিসাবে do_something filenameবা হিসাবে আর্গুমেন্ট হিসাবে ব্যবহার করেন do_something ./filenameতবে তার অর্থ একই জিনিস।


5

আপনি কমান্ড এক্সিকিউশন উল্লেখ করছেন, তাই না?

একটি পরিবেশগত পরিবর্তনশীল PATHরয়েছে যার মধ্যে কিছু সিস্টেম ডিরেক্টরি রয়েছে, সেমিকোলন দ্বারা বিযুক্ত। আপনি যখন টাইপ commandকরেন সিস্টেমগুলি এই ডিরেক্টরিগুলিকে ক্রম অনুসারে দেখায় তারা <command> নামের একটি এক্সিকিউটেবল ফাইল সন্ধান করার জন্য নির্দিষ্ট করা হয় যদি এটি এটি খুঁজে পায় তবে এটি এটি কার্যকর করার চেষ্টা করে। ব্যাশের মাধ্যমে আপনি আপনার পথ দেখতে পাচ্ছেন echo $PATH। উদাহরণ স্বরূপ:

$ প্রতিধ্বনি $
পাঠ / এসবিন: / বিন: / ইউএসআর / এসবিন: / ইউএসআর / বিন: / ইউএসআর / গেমস: / ইউএসআর / লোকাল / এসবিন: / ইউএসআর / লোকাল / বিন: / হোম / আইভানাতোরা / বিন: / ইউএসআর / স্থানীয় / kde4 / বিন / usr / স্থানীয় / kde4 / বিন

আপনি টাইপ করার সময় আপনি ./filenameসঠিক পাথ: বর্তমান ডিরেক্টরিটি নির্দিষ্ট করতে পারেন। আপনি দেখতে পাচ্ছেন যে বর্তমান ডিরেক্টরি খুব কমই আপনার $ PATH এ রয়েছে (সুরক্ষার কারণে)। সুতরাং আপনি যদি বর্তমান ডিরেক্টরি থেকে কোনও ফাইল সম্পাদন করতে চান তবে আপনি ব্যবহার করুন ./filename

কোনও ফাইলকে তার পথে চালিত করতে (বিশেষত যদি এটি $ PATH না থাকে) আপনি টাইপ করতে পারেন <path>/file, যেমন:

পক্ষ থেকে / sbin / ifconfig


3

এই পার্থক্যের মূল কারণ কার্যকর কার্যকর নিরাপত্তা।

আপনি চান না . (বর্তমান কার্যনির্বাহী ডিরেক্টরি বা পিডাব্লুডি) আপনার পথে কারণ কেউ আপনার পিডাব্লুডিতে http://en.wikedia.org/wiki/Trojan_horse_%28 কমপুটিং ৯৯৯ কে পিএস বা এলএস এর মতো গুরুত্বপূর্ণ কার্যকর এক্সিকিউটেবল এবং খারাপ ডেটা উপস্থাপন করে আপনাকে বোকা বানাতে পারে।


1

এটি নির্ভর করে আপনি কোন পরিস্থিতিতে এটি ব্যবহার করছেন।

একটি যুক্তি হিসাবে, যেমন "প্রোগ্রাম ফাইল নাম", তারপরে এটি প্রোগ্রামের উপর নির্ভর করে তবে সাধারণত তারা অভিন্ন হয়।

প্রোগ্রামের নাম হিসাবে, যেমন "ফাইলের নাম আর্গুমেন্টস", তারপরে "ফাইলের নাম আর্গুমেন্টস" বাইনারি সন্ধান করতে PATH অনুসন্ধান করবে, যখন "./filename আর্গুমেন্ট" বর্তমান ডিরেক্টরিতে প্রোগ্রামটি ব্যবহার করবে। এটি স্পষ্টতই কার্যকর যদি। PATH এ নেই, তবে এটি ব্যবহার করার পরেও এটি দরকারী। পথে রয়েছে, সম্ভবত এটি পূর্বের প্রবেশের সাথে মেলে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.