লিনাক্সে / ডিভ / নলের সমতুল্য ডিরেক্টরি রয়েছে?


84

অ্যাপ্লিকেশনটি কনফিগার করার সময়, আপনি /dev/nullযদি অ্যাপ্লিকেশনটি খালি ফাইলটি পড়তে চান তবে আপনি প্রায়শই কনফিগার ফাইল হিসাবে ব্যবহার করতে পারেন। তবে, যদি অ্যাপ্লিকেশনটি কোনও ডিরেক্টরি থেকে ফাইলগুলির একটি তালিকা পড়ে, আপনি এই কৌশলটি ব্যবহার করতে পারবেন না। আপনার এটি পড়ার জন্য একটি খালি ডিরেক্টরি দিতে হবে।

আমি ভাবছিলাম: লিনাক্সের কি কোনও ডিফল্ট ফাঁকা ডিরেক্টরি রয়েছে যা এই জাতীয় উদ্দেশ্যে ব্যবহার করা যেতে পারে? আমি জানি ওপেনএসএইচ কিছুক্ষণের জন্য / ভার / খালি ব্যবহৃত হয়েছে, এবং আমি অবশ্যই একটি খালি দির নিজে তৈরি করতে পারি, তবে সম্ভবত এফএইচএস এর জন্য একটি স্ট্যান্ডার্ড ডিরেক্টরি নির্দিষ্ট করেছে?


8
আমার সিস্টেমে, /var/emptyখালি নয়, তবে এতে একটি ফোল্ডার রয়েছে sshd, যাতে আপনি সম্ভবত এটি ব্যবহার করতে চান না।
নুব

12
শুধু একটি পয়েন্ট: বিশেষ দৃষ্টিভঙ্গি /dev/nullজন্য আপনাকে অনেক নয় পড়া হিসাবে জন্য লেখা। /dev/nullসবেমাত্র লেখা ডেটা অদৃশ্য হয়ে যায়। সুতরাং, একটি ডিরেক্টরি সমতুল্য এমন একটি জায়গা হবে যেখানে mv yourfile /dev/emptyআপনার ফাইল মুছতে পারে।
ওয়াইল্ডকার্ড

4
@ উইল্ডকার্ড আমি মনে করি আপনি বোঝাতে চাইছেন mv yourfile /dev/empty/। আপনি যদি করেন তবে আপনি mv yourfile /dev/emptyবিশেষ ডিরেক্টরিটি প্রতিস্থাপনের চেষ্টা করছেন।
রাইময়েড

6
@ জুলেস না, এটি নেই। আপনি কোনও কিছুর সাথে আরম্ভ করতে পারবেন না /dev/nullএবং ddকারণ ddএটি একটি একক বাইট এমনকি লেখার আগে একটি EOF পাবে। আমি মনে করি আপনি ভাবছেন /dev/zero, যা প্রায়শই কোনও নির্দিষ্ট শূন্যের কিছু পূরণ বা উত্পন্ন করতে ব্যবহৃত হয়।
মিশেল জনসন

2
@MichealJohnson আপনি ঠিক, আমার ভুল, আমি বিভ্রান্ত চাই /dev/nullসঙ্গে /dev/zero
জুলাই

উত্তর:


66

FHS না "মান" খালি ডিরেক্টরি প্রদান করে।

লিনাক্স সিস্টেমগুলির জন্য ডিরেক্টরি সরবরাহ করা সাধারণ /var/empty, তবে এই ডিরেক্টরিটি এফএইচএসে সংজ্ঞায়িত হয় না এবং এটি সম্ভবত খালিও নাও হতে পারে। পরিবর্তে, নির্দিষ্ট ডিমনগুলি এখানে তাদের নিজস্ব খালি ডিরেক্টরি তৈরি করবে। উদাহরণস্বরূপ, ওপেনশ /var/empty/sshdবিশেষাধিকার পৃথকীকরণের জন্য খালি ডিরেক্টরিটি ব্যবহার করে ।

যদি আপনার খালি ডিরেক্টরিটির প্রয়োজন ক্ষণস্থায়ী হয়, আপনি /runবা একটি উপ ডিরেক্টরি হিসাবে নিজেই একটি খালি ডিরেক্টরি তৈরি করতে পারেন /tmp। আপনি যদি প্রোগ্রামটির বাইরে এটি করছেন, আপনি এটির mktemp -dজন্য ব্যবহার করতে পারেন , বা mkdtemp(3)আপনার প্রোগ্রামের ভিতরে সি ফাংশন ব্যবহার করতে পারেন । যদিও আপনার যদি সর্বদা খালি ডিরেক্টরি উপস্থিত থাকার প্রয়োজন হয় তবে /var/emptyওপেনশাসের মতো একটি তৈরি করা বিবেচনা করুন।

এই ব্যবহারের ক্ষেত্রে, অধীনে ডিরেক্টরি তৈরি /tmpকরা সম্ভবত সেরা উপযুক্ত, যদিও বাস্তবে আপনি এটি কোথায় রেখেছেন তা বিবেচ্য নয়।


5
আমি এর অধীন সাব-ডাইরেক্টরিগুলি তৈরি করার পরামর্শ দেব না /var/empty, যেহেতু যে কোনও প্রোগ্রাম এটি ব্যবহার করে (যেমন এটির ডিফল্ট কনফিগারেশনে ওপেনএসএসএইচ ) এটি বাস্তবে শূন্য হতে পারে expect ( /var/empty/sshdজিনিসটি একটি অদ্ভুত রেডহ্যাট-ইসম হিসাবে মনে হচ্ছে; /var/run/sshdপরিবর্তে ডিবিয়ান ব্যবহার করে))
ইলমারি করোনেন

3
@ ইলমারিকারনেন আপনি যে লিখিত কোডটি লিঙ্ক করেছেন তাতে ওপেনএসএসএইচ /var/emptyখালি থাকার প্রত্যাশা আপনার এই দাবিটিকে সমর্থন করে না । অন্য কোথাও কেউ কি এটির জন্য সন্ধান করতে পারে?
মাইকেল হ্যাম্পটন

2
@ ইলমারিকারোনেন এইচএম, সেই দস্তাবেজটি পুরানো। এটি উল্লেখ করে /var/emptyতবে কোডটি আসলে ব্যবহার করে /var/empty/sshd। আবার চেষ্টা করুন. :)
মাইকেল হ্যাম্পটন

1
পুনঃটুইট এখন আমি মনে করি আপনি ঠিক বলেছেন, উত্সটি দেখার পরে যা ক্রুট () কল করে। আমি আশ্চর্যজনক মনে করি যে ওপেনশায় এমন স্পষ্টতই বোকামি ত্রুটি থাকবে যে রেড হ্যাটকে একটি নিম্ন প্রবাহ সংশোধন করতে হবে।
মাইকেল হ্যাম্পটন

2
আমি দেখতে পাচ্ছি না এটি কীভাবে "বোকা ত্রুটি" - ক্রুট জেল হিসাবে ব্যবহারের জন্য একটি আদর্শ স্থানে গ্যারান্টিযুক্ত খালি মূল মালিকানার ডিরেক্টরি থাকা আমার কাছে একেবারে ভাল ধারণা বলে মনে হয়। অবশ্যই, রেডহ্যাটকে তার নীচে সাব-ডিরেক্টরি তৈরি করে সবার জন্য এটি নষ্ট করতে হয়েছিল। ফলস্বরূপ, পোর্টেবল কোডের জন্য আমার প্রস্তাবনাটি /var/emptyকোনও কিছুর জন্য ব্যবহার না করা হবে , যেহেতু আপনি কোনও প্রদত্ত সিস্টেমে এর শব্দার্থবিজ্ঞানের বিষয়ে নিশ্চিত হতে পারবেন না। আপনার নিজের খালি ডিরেক্টরি তৈরি করা যেমন /var/runডেবিয়ানের মতো, এর অধীনে আরও বুদ্ধিমান বলে মনে হয়।
ইলমারি করোনেন

37

আপনি mktemp -dনিরাপদে অনুমতি নিয়ে একটি নতুন খালি অস্থায়ী ডিরেক্টরি তৈরি করতে ডিফল্টরূপে ব্যবহার করতে পারেন /tmp/। ইউটিলিটি নতুন ডিরেক্টরিটির পথে আউটপুট আনবে STDOUT, সুতরাং এটি শেলটিতে কার্যকর।

এটি যাইহোক সিস্টেমড ইউনিট ফাইলের চেয়ে বেশি পোর্টেবল।


হ্যাঁ, আপনি করতে পারেন, তবে এটি ডিরেক্টরিটি যদি কনফিগারেশন ফাইলে নির্দিষ্ট করতে হয় তবে তা ব্যবহারিক নয়। আপনি তার জন্য একটি স্থায়ী দির চাইবেন।
Roelvanmeer

22

এই ইউনিক্স প্রশ্নের নালফস ফুস ফাইল সিস্টেম সহ একটি "ব্ল্যাকহোল" ডিরেক্টরি তৈরির জন্য কিছু পরামর্শ রয়েছে ।


1
আমি জানি না কেন এমকেটেম্প / এমকেডিটেম্প উত্তরটি এত বেশি ভার্ভুলেটেড হয় যখন এটি সঠিক উত্তর। নালফগুলি / dev / নাল সমতুল্য।
chx

11

পরিষেবাদিগুলির জন্য সিস্টেমড PrivateTmpবেসরকারী /tmpএবং /var/tmpডিরেক্টরিগুলি তৈরি করার বিকল্প সরবরাহ করে যা সেবারের জন্য নামের জায়গার বাইরে কোনও প্রক্রিয়া দ্বারা ভাগ করা যায় না এবং যা খালি (প্রাথমিকভাবে) হওয়া উচিত।

[Service]
ExecStart=...
PrivateTmp=yes 

7
প্রোগ্রামটি অন্যান্য অস্থায়ী ফাইলগুলি তৈরি করতে পারে, সুতরাং আপনি /tmpএটি খালি খালি খালি খালি ধরে নিতে পারবেন না কারণ এটির নাম গতি হয়েছে।
মাইকেল হ্যাম্পটন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.