লিনাক্সে কোনও ফাইলের শারীরিক আকার কীভাবে পাবেন?


12

আমি ls -lকোনও ফাইলের যৌক্তিক আকার পেতে ব্যবহার করতে পারি, তবে কোনও ফাইলের দৈহিক আকার পাওয়ার কোনও উপায় আছে কি?


দয়া করে, "শারীরিক" আকার দ্বারা আপনি কী বোঝাতে চান তা নির্ধারণ করুন।
Jörg ডব্লু মিট্টাগ

উত্তর:


28

ls -lআপনাকে ফাইলটির আপাত আকার দেবে, যা কোনও প্রোগ্রামের পড়া শুরু থেকে শেষ পর্যন্ত ফাইলটি পড়লে বাইটের সংখ্যা। duআপনাকে "ডিস্কে" ফাইলের আকার দেবে।

ডিফল্টরূপে, duআপনাকে ডিস্ক ব্লকের সংখ্যায় ফাইলের আকার দেয় তবে আপনি -hপরিবর্তে একটি মানব পাঠযোগ্য ইউনিট পেতে ব্যবহার করতে পারেন । duআপনার সিস্টেমে ম্যানুয়ালটিও দেখুন ।

নোট করুন যে GNU কোর্টিলের সাথে du(যা সম্ভবত লিনাক্সের মধ্যে রয়েছে), -bবাইটগুলি পেতে --apparent-sizeবিকল্পটি বোঝায় । আপনি ডিস্কে আসলে ব্যবহৃত বাইট সংখ্যা পেতে এটি ব্যবহার করতে চান না। পরিবর্তে, ব্যবহার করুন --block-size=1বা -B 1

জিএনইউ দিয়ে lsআপনি ls -s --block-size=1ফাইলটিও করতে পারেন । এটি du -B 1ফাইলের মতো একই নম্বর দেবে ।


উদাহরণ:

$ ls -l file
-rw-r--r--  1 myself wheel  536870912 Apr  8 11:44 file

$ ls -lh file
-rw-r--r--  1 myself wheel   512M Apr  8 11:44 file

$ du -h file
24K    file

$ du -B 1 file
24576   file

$ ls -s --block-size=1 file
24576 file

এর অর্থ এটি একটি 512 এমবি ফাইল যা ডিস্কে প্রায় 24 কেবি লাগে। এটি একটি বিরল ফাইল (বেশিরভাগ শূন্য যা আসলে ডিস্কে লিখিত হয় না তবে ফাইলটিতে যৌক্তিক "ছিদ্র" হিসাবে প্রতিনিধিত্ব করা হয়)। প্রাক-বরাদ্দ হওয়া বড় ফাইলগুলির সাথে কাজ করার সময় স্পার ফাইলগুলি সাধারণ হয়, যেমন ভার্চুয়াল মেশিনগুলির জন্য ডিস্ক চিত্রগুলি বা স্ব্যাপ ফাইলগুলি ইত্যাদি a

fallocateআপনার লিনাক্স সিস্টেমে ম্যানুয়ালটিও দেখুন ।


কোন ক্ষেত্রে এই পার্থক্য গুরুত্বপূর্ণ? আপনি কি ব্যবহারিক উদাহরণ তৈরি করতে পারেন? তুমাকে অগ্রিম ধন্যবাদ.
ডি 'আরসি নাদের

1
@ ডি'আরসিএনডার আপডেট হওয়া উত্তর দেখুন।
কুসালানন্দ

আমি যদি কিছু ভুল বুঝি তবে আমাকে সংশোধন করুন, তবে এটি প্রথম বাক্যটি অন্য উপায়ে দেখা যাচ্ছে: স্ট্যাকওভারফ্লো.com / a / 31437673 / 3701431du আসলে কতটা ডেটা পড়া lsযায় তা দেখায় , যখন ডিস্ক সেক্টরগুলি বরাদ্দ করা হয়েছে তার পরিমাণ দেখায়।
সের্গেই কলডিয়াজন্য

2
@ সের্গি কলোডিএজনি (দেরি করে উত্তর দেওয়ার জন্য দুঃখিত) না, duফাইলটি আসলে যে ডিস্কের ব্যবহার করছে তা দেখায়, যখন আপাত আকার (যৌক্তিক আকার) দেখানো হয়েছে যে lsকোনও প্রোগ্রাম এটি থেকে কতগুলি বাইট পড়তে সক্ষম হবে। যদি ফাইলটি অপ্রয়োজনীয় হয় তবে কিছু পঠিত বাইট শূন্য হতে পারে তবে তাদের পড়ার প্রোগ্রামটিতে কেবল বিতরণ করা হবে (ডিস্ক থেকে নয়)।
কুসালানন্দ

এটি সত্যিই একটি ভাল উত্তর ছিল।
টিকটিকি

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