একটি সিমলিংকের "আকার" কী এলএস আউটপুটে উপস্থাপন করে?


11

আমি উদাহরণ দিয়ে শুরু করব:

$ ls -l dir1
total 4
-rw-r--r-- 4 maythux maythux 1650 2008-01-10 16:33 file
lrwxrwxrwx 1 maythux maythux  7 2008-01-15 15:17 symfile -> file

symfile ফাইলের একটি সিমিলিংক file

আমি জানি 1650যে ফাইলের আকার হবে তবে আকার কলামের নীচে যে fileসংখ্যাটি 7রাখা হয়েছে তা কী?

সম্পাদনা: চলমান du:

$ du -sh symfile
0   symfile

সুতরাং আপনি কীভাবে প্রমাণ করতে পারেন যে 7 টি সিএমলিংকের আকার ?!


হালনাগাদ:

এটা চেষ্টা কর

$ touch file
$ du -sh file
0 file
$ ls -l file
-rw-rw-r-- 1 maythux maythux 0 Jun  1 19:42 file

নোট করুন যে আকারটি এখানে 0।

এখন:

$ ln -s file sym
$ du -sh sym
0 sym
$ ls -l sym
lrwxrwxrwx 1 maythux maythux 4 Jun  1 19:44 sym -> file

সুতরাং, আমি মনে করি এটি কেবল একটি আকার নয়


2
7ফাইলসিস্টেম (এবং সম্ভবত অন্যান্য আবশ্যক পরামিতি উল্লেখ) উপর নির্ভর করে। এটি Ext4 এ 7, তবে বিটিআরএফএসে 13 এবং tmpfs এ 3 হতে পারে।
মুড়ু

1
এটি একটি আকার, তবে আকারটি ফাইল সিস্টেমের উপর নির্ভর করে (বিটিআরএফএস সম্ভবত এক্সট 4 এর চেয়ে বেশি মেটাডেটা এবং tmpfs এর চেয়ে ext4 বেশি সঞ্চয় করে)। আপনি লিঙ্কগুলি দিয়ে আপনার ডিস্কটি পূরণ করতে পারেন। আমি কেবল বলছি, আপনি যদি অন্য একটি ফাইল সিস্টেমে একটি পৃথক নম্বর দেখতে পান তবে অবাক হবেন না।
মুড়ু


1
আপনার ডিরেক্টরি এন্ট্রি এর ন্যূনতম আকার রয়েছে এটি প্রয়োজনের চেয়ে বড়। পর্যাপ্ত এন্ট্রি করুন এবং ডিরেক্টরিটির আকার বৃদ্ধি পাবে। সঙ্গে চেক করুন: mkdir foo; ls -ld foo; for i in {1..1000}; do ln -s foo/bar foo/$i; done; ls -ld foo
মুড়ু

উত্তর:


13

প্রতীকী লিঙ্কগুলি অন্য মেটাডেটার জন্য নাম এবং লক্ষ্যবস্তু প্লাস কয়েক বাইট সঞ্চয় করতে যে ঘরে লাগে তা নেয়।

সুতরাং এটি সিমিলিংকের আকার।

থেকে আকার প্রসঙ্গে du -sh: du কত ব্লক বরাদ্দ শুধুমাত্র সৌন্দর্য, এবং তাই 0. দেখাতে পারে statএবং ls -lযে বিষয়ে আকার দেখানোর ক্ষেত্রে ভাল হয়।


তাহলে কেন du -sh symfile0 দেয়? -
মেথক্স

ডু কেবলমাত্র কতগুলি ব্লক বরাদ্দ রয়েছে তা দেখায় এবং তাই 0 স্ট্যাটাস এবং এলএস-এল আরও স্মার্ট।
রিঞ্জউইন্ড

দয়া করে আপডেটটি পড়ুন
মেথক্স

আমার উত্তর দেখুন: এটি নাম, লক্ষ্য এবং কিছু মেটাডেটা। মোট এটি 7 বাইট জন্য আপ। অন্যান্য ওএসের অন্যান্য মেটাডেটা স্টোর করে এবং এর আকারও আলাদা থাকে।
রিঞ্জউইন্ড

প্রশ্নটি ছিল "আপনি কীভাবে এটি সরবরাহ করতে পারেন?"
পাইলট 6

5

এটি বাইটে থাকা সিমলিংকের আকার।

কিছু ফাইল সিস্টেমে ডিরেক্টরি প্রবেশের ভিতরে একটি ছোট অঞ্চল থাকে যা ফাইলের শুরুতে ব্যবহৃত হয়, যা সিমলিংকের প্রসেসিংয়ে তাত্পর্যপূর্ণ করে তোলে এবং fileবৃহত্তর ডিরেক্টরিতে এন্ট্রি ব্যয়ে ছোট পাঠ (চিন্তা ) করে।

যদি পুরো সিমলিংক সামগ্রীগুলি ডিরেক্টরিতে প্রবেশের সাথে ফিট করে তবে কোনও ডেটা ব্লক বরাদ্দ করা হয় না এবং duআকারটি শূন্য হিসাবে দেখায়। যদি সিমলিংকটি ফিট না করে তবে স্থানটি সাধারণত বরাদ্দ করা হয় (যাতে আপনি একটি একক ব্লক বরাদ্দ দিয়ে শেষ করেন), যা টেল মার্জিং ব্যবহার করে ফাইল সিস্টেম দ্বারা অনুকূলিত করা যেতে পারে (তবে এটি duসম্পর্কে জানতে কোনও API নেই )।

ext4ফাইলসিস্টেম symlinks শুধুমাত্র মানদণ্ডের ফাংশন পাওয়া যায় এই অপ্টিমাইজেশান সঞ্চালিত ext4_inode_is_fast_symlink


" কিছু ফাইল সিস্টেম ... " - আপনি যদি এই বৈশিষ্ট্যটির সাথে সাধারণ ফাইল সিস্টেমগুলি তালিকাভুক্ত করেন (এবং কোনও সাধারণ নেই) আপনার উত্তরটি উন্নত হবে।
আরএম

1

এটি বাইটে থাকা সিমলিংক ফাইলের আকার।

সিমলিংক ফাইল হ'ল একটি স্বাভাবিক ফাইল যা এটি নির্দেশ করে যে ফাইলটি কোথায় তা সম্পর্কিত তথ্য সংরক্ষণ করে। এক্স 4 এ এটি 7 বাইট।


কি আকারে? এটি কি বাইট বা বিট বা কি?
মেথক্স

বাইট
আকারে

1
তাহলে কেন du -sh symfile0 দেয়?
মেথাক্স

du খুব ছোট ফাইলের সাথে চাপ দেয় না। প্রায় 99 বাইট ফাইলটিতে ডু ব্যবহার করার চেষ্টা করুন। এটি 4.0K প্রদর্শন করবে।
পাইলট 6

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