/ Dev / নাল ফাইলটির আসলে কোনও স্থির আকার থাকে?


23

আমি সবেমাত্র জানতে পেরেছি যে /dev/nullএটি একটি ফাইল নয় ডিরেক্টরি।

আমি ভাবছি এটির প্রকৃত ফাইলের আকার আছে কিনা।

উত্তর:


35

/dev/nullআসলেই একটি ফাইল নয়। এটি একটি চরিত্রের ডিভাইস !

$ ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Apr 10 09:53 /dev/null

cঅনুমতিগুলির স্ট্রিংয়ের প্রথম অক্ষর ( crw-rw-rw-) এটি নির্দেশ করে। নিয়মিত ফাইলগুলির জন্য, এটি -পরিবর্তে হবে।

সুতরাং সহজ কথায়: /dev/nullফাইল ফাইল নয় এই ফাইল সিস্টেমে কোনও ভার্চুয়াল ডিভাইস ম্যাপ করা হয়েছে যা ব্ল্যাকহোলের মতো ডেটা গিলে ফেলা এবং বিলুপ্ত করার একমাত্র উদ্দেশ্য has
এটি যদিও ইনপুট হিসাবে ব্যবহার করা যেতে পারে, তারপরে এটি খালি ফাইল (আকার 0) এর মতো কাজ করে এবং তাত্ক্ষণিকভাবে একটি ইওফ (ফাইলের শেষ) ফেরত দেয়।

অতএব আপনি বলতে পারবেন না যে /dev/nullএর কোনও নির্দিষ্ট ফাইলের আকার রয়েছে কারণ এটি কোনও স্টোরেজ মিডিয়ামের নিয়মিত ফাইল নয়।


ইনপুট? এটি NUL অক্ষরের একটি অন্তহীন তালিকা সরবরাহ করে?
জোনাথন

@ জোনাথন উইসনোস্কি আমি ঠিক জানি না এবং আমি এটির মতো কখনও ব্যবহার করি নি, তাই আমি আপনাকে স্ট্যাকওভারফ্লো সম্পর্কিত একটি প্রশ্নের লিঙ্কটি দিতে পারি যেখানে এটি ব্যাখ্যা করা হয়েছে।
বাইট কমান্ডার

7
@ জোনাথন উইসনোস্কি, না - এটি ইনপুটটিতে একটি শূন্য আকারের ফাইলের মতো আচরণ করে, যাতে এটি থেকে প্রথমটি পড়তে পারে যে ফাইলটি ইওএফ-তে রয়েছে reports
গডলিজিক

হ্যাঁ, এটা ঠিক।
গডলিজিক

3
@ জোনাথন উইসনোস্কি তার জন্য / ডিভ / শূন্যের দিকে তাকান।
পাওলো ইবারম্যান

16

/dev/null" ডিভাইস ফাইল " নামে পরিচিত একটি বিশেষ ধরণের ফাইল

ডিভাইস ফাইলগুলি কিছু কার্নেল ফাংশনগুলির ইন্টারফেস হিসাবে কাজ করে। তারা কেবল ডিরেক্টরি প্রবেশের জন্য প্রয়োজনীয় স্থানটি দখল করে (" ইনোড ") তবে কোনও আসল সামগ্রী নেই এবং প্রকৃত ফাইল আকার নেই।

অন্যান্য ডিভাইস ফাইলগুলি হ'ল /dev/sda(সাধারণত একটি এইচডিডি বা এসএসডি), /dev/zero(পড়ার সময় শূন্যের উত্পন্ন একটি ফাইল), বা /dev/random(এমন ফাইল যা পড়ার সময় এলোমেলো ডেটা উত্পন্ন করে)। আসলে সমস্ত ফাইলগুলির মধ্যে /dev/হয় ডিভাইস ফাইল বা লিঙ্কগুলি ডিভাইস ফাইলগুলিকে নির্দেশ করে।


যদিও আমি এই উত্তরটির বেশিরভাগই সঠিক (+1) পেয়েছি, আমি মনে করি যে এটি একটি ইনোড প্রবেশের আকারটি দখল করে বলেছে যে এটি একটু বিভ্রান্তিকর। তারা হয় কোনও স্থান দখল করে না, যদি ডিস্ক স্পেসের কথা উল্লেখ করে, বা তাদের পুরো প্রয়োগকে ক্যারেক্টার ডিভাইস হিসাবে উল্লেখ করে তারা আরও গ্রহণ করে।
কোস

2
ঠিক অন্য কোনও ফাইলের মতো কোনও ডিভাইস ফাইলের জন্য একটি ইনোড দরকার যা মালিক, অনুমতি, বড় / ছোটখাট নম্বর এবং অন্যান্য মেটাডেটা সঞ্চয় করে। এটি কীভাবে এবং কোথায় এই ইনোডগুলি সংরক্ষণ করা হয় তা ফাইল সিস্টেমের উপর নির্ভর করে (আপনি mknodযে কোনও জায়গায় ডিভাইস ফাইল তৈরি করতে ব্যবহার করতে পারেন)। ভার্চুয়াল ফাইল সিস্টেমে যেমন /dev/ইনোডটি ডিস্কের জায়গা দখল করে না তবে কিছু স্মৃতি থাকে।
ফ্লোরিয়ান ডিয়েচ

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

কোনও ফাইলের ইনোড টেবিল এন্ট্রি দ্বারা দখল করা স্থানটি দখল করা সত্যই সঠিক? আমি মনে করি না যে এটি সাধারণত লোকেদের - এবং সফ্টওয়্যার লোকেরা কী লিখেছিল - তার মধ্যে যখন তারা ফাইল আকারের বিষয়ে কথা বলে তখন এটি অন্তর্ভুক্ত থাকে। বিশেষত, কোনও চরিত্রের বিশেষ ডিভাইসের আকার জিজ্ঞাসা করা lsএবং duপ্রতিবেদন করা যেমন 0 /dev/nullবা পাওয়া যায়/dev/random
এলিয়াহ কাগান

দুঃখিত, তবে আমি এই উত্তরটিকে অগ্রাহ্য করেছি, কারণ আমি যা বলেছি (যা আমি হতে পারি) তার উপরে কেউ যদি আমাকে ভুল প্রমাণ না করে তবে আমি এখনও মনে করি যে কোনও অক্ষর ডিভাইস একটি ইনোডের প্রবেশের জায়গাটি দখল করে আছে তা বলা ঠিক হবে না।
কোস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.