লিনাক্সে ফাইল বা ডিরেক্টরি আকার কীভাবে পাবেন

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

প্রকৃত ডিস্ক ব্যবহার এবং সত্য আকার

কোনও ফাইলের আকার এবং এটি আপনার হার্ড ড্রাইভে স্থানটি খুব কমই এক রকম হয়। ব্লকগুলিতে ডিস্কের স্থান বরাদ্দ করা হয়। যদি কোনও ফাইল একটি ব্লকের চেয়ে ছোট হয় তবে একটি সম্পূর্ণ ব্লক এখনও এটিকে বরাদ্দ করা হয় কারণ ফাইল সিস্টেমটিতে রিয়েল এস্টেটের ব্যবহারের মতো ছোট ইউনিট নেই।

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

ফাইলের আকারের সাথে দুটি পরিমাপ ব্যবহৃত হয়। প্রথমটি হ'ল ফাইলটির আসল আকার, যা ফাইল তৈরির বিষয়বস্তুর বাইট সংখ্যা। দ্বিতীয়টি হ'ল হার্ড ডিস্কের ফাইলটির কার্যকর আকার। এই ফাইলটি সংরক্ষণ করার জন্য এটি প্রয়োজনীয় ফাইল সিস্টেম ব্লকের সংখ্যা।

একটি উদাহরণ

আসুন একটি সহজ উদাহরণ তাকান। একটি ছোট ফাইল তৈরি করতে আমরা একটি একক অক্ষরকে একটি ফাইলে পুনর্নির্দেশ করব:

প্রতিধ্বনি "1"> geek.txt

এখন, আমরা দীর্ঘ বিন্যাসের তালিকা ব্যবহার করব,lsফাইলের দৈর্ঘ্যটি দেখতে:

ls -l geek.txt

দৈর্ঘ্য হ'ল সংখ্যাসূচক মান যা অনুসরণ করে ডেভ ডেভ এন্ট্রি, যা দুটি বাইট। যখন আমরা কেবল একটি চরিত্রটি ফাইলে প্রেরণ করেছি তখন কেন এটি দুটি বাইট হয়? আসুন একবার দেখে নিই ফাইলের ভিতরে কী ঘটছে।

আমরা এটি ব্যবহার করব হেক্সডাম্প কমান্ড, যা আমাদের একটি সঠিক বাইট গণনা দেবে এবং আমাদের অ-মুদ্রণ অক্ষরকে হেক্সাডেসিমাল মান হিসাবে "দেখার" অনুমতি দেয়। আমরা এটিও ব্যবহার করব -সি (ক্যানোনিকাল) বিকল্পটি আউটপুটটির শরীরে হেক্সাডেসিমাল মানগুলি প্রদর্শন করতে, পাশাপাশি তাদের বর্ণানুক্রমিক অক্ষরের সমতুল্য প্রদর্শন করার জন্য:

hexdump -C geek.txt

আউটপুট আমাদের দেখায় যে, ফাইলটিতে 00000000 অফসেটের শুরুতে, এমন একটি বাইট রয়েছে যা 31 এর একটি হেক্সাডেসিমাল মান এবং 0 এ এর ​​একটি হেক্সাডেসিমাল মান ধারণ করে। আউটপুটটির ডান হাতের অংশটি এই মানগুলিকে বর্ণানুক্রমিক অক্ষর হিসাবে চিত্রিত করেছে, যেখানেই সম্ভব।

31 এর হেক্সাডেসিমাল মানটি এককে উপস্থাপন করতে ব্যবহৃত হয়। 0 এ এর ​​হেক্সাডেসিমাল মান লাইন ফিড অক্ষরের প্রতিনিধিত্ব করতে ব্যবহৃত হয়, যা বর্ণানুক্রমিক অক্ষর হিসাবে দেখানো যায় না, সুতরাং এটি পরিবর্তিত সময়কাল (।) হিসাবে প্রদর্শিত হয়। লাইন ফিড অক্ষর দ্বারা যুক্ত করা হয় প্রতিধ্বনি । গতানুগতিক,প্রতিধ্বনিএটি টার্মিনাল উইন্ডোতে লিখতে হবে এমন পাঠ্যটি প্রদর্শন করার পরে একটি নতুন লাইন শুরু করে।

যে আউটপুট সঙ্গে দীর্ঘls এবং দুটি বাইট ফাইল দৈর্ঘ্যের সাথে একমত।

সম্পর্কিত:লিনাক্সে ফাইল ও ডিরেক্টরি তালিকা করতে ls কমান্ডটি কীভাবে ব্যবহার করবেন

এখন, আমরা এটি ব্যবহার করব du ফাইল আকার দেখতে কমান্ড:

du geek.txt

এটি বলে যে আকার চারটি, তবে চারটি কী?

আছে ব্লক, এবং তারপরে ব্লক রয়েছে

কখন du ব্লকগুলিতে ফাইল আকারের প্রতিবেদন করে, এটি যে আকারটি ব্যবহার করে তা বিভিন্ন কারণের উপর নির্ভর করে। কমান্ড লাইনে কোন ব্লকের আকার ব্যবহার করা উচিত তা আপনি নির্দিষ্ট করতে পারেন। যদি আপনি জোর না করেন du একটি নির্দিষ্ট ব্লক আকার ব্যবহার করতে, এটি কোনটি ব্যবহার করবেন তা সিদ্ধান্ত নেওয়ার জন্য নিয়মের একটি সেট অনুসরণ করে।

প্রথমত, এটি নিম্নলিখিত পরিবেশের ভেরিয়েবলগুলি পরীক্ষা করে:

  • DU_BLOCK_SIZE
  • ব্লক আকার
  • ব্লক আকার

এর মধ্যে যদি কোনও উপস্থিত থাকে তবে ব্লকের আকার সেট করা থাকে এবং du চেক করা বন্ধ করে দেয় যদি কোনওটি সেট না করা হয়,du 1,024 বাইটের একটি ব্লক আকারে ডিফল্ট। যতক্ষণ না, এটি একটি পরিবেশ পরিবর্তনশীল নামে পরিচিত POSIXLY_CORRECT সেট করা আছে। যদি এটি হয়, du 512 বাইটের ব্লকের আকারের ডিফল্ট।

সুতরাং, আমরা কীভাবে ব্যবহার করব তা কীভাবে আবিষ্কার করব? এটিকে কার্যকর করার জন্য আপনি প্রতিটি পরিবেশের পরিবর্তনশীল পরীক্ষা করতে পারেন তবে আরও দ্রুত উপায় আছে। এর পরিবর্তে ফাইল সিস্টেমটি পরিবর্তিত আকারের সাথে ফাইল সিস্টেমের তুলনা করি।

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

এই উদাহরণে, আমরা প্রথম হার্ড ড্রাইভের প্রথম পার্টিশনে ফাইল সিস্টেমটি দেখব, sda1, এবং আমাদের ব্যবহার করা দরকার sudo:

sudo tune2fs -l / dev / sda1 | গ্রেপ ব্লক

ফাইল সিস্টেম ব্লকের আকার 4,096 বাইট। আমরা যদি ফলাফলটি দ্বারা ভাগ করে নিই from du (চার), এটি দেখায়du ডিফল্ট ব্লকের আকার 1,024 বাইট। আমরা এখন বেশ কয়েকটি গুরুত্বপূর্ণ বিষয় জানি।

প্রথমত, আমরা ফাইল সিস্টেমের রিয়েল এস্টেটের ক্ষুদ্রতম পরিমাণ জানি যা কোনও ফাইল সংরক্ষণের জন্য উত্সর্গ করা যায় 4,096 বাইট। এর অর্থ এমনকি আমাদের ক্ষুদ্র, দ্বি-বাইট ফাইলটি 4 কিলো হার্ড ড্রাইভের স্থান গ্রহণ করছে।

দ্বিতীয় বিষয় মনে রাখবেন হ'ল হার্ড ড্রাইভ এবং ফাইল সিস্টেমের পরিসংখ্যানগুলিতে প্রতিবেদনের জন্য নিবেদিত অ্যাপ্লিকেশনগুলি du, ls, এবংtune2fs"ব্লক" বলতে কী বোঝায় তার বিভিন্ন ধারণা থাকতে পারে। দ্য tune2fs অ্যাপ্লিকেশন সত্য ফাইল সিস্টেম ব্লক আকারের রিপোর্ট করে, যখনls এবং du কনফিগার করা বা অন্যান্য ব্লক মাপ ব্যবহার করতে বাধ্য করা যেতে পারে। এই ব্লক আকারগুলি ফাইল সিস্টেমের ব্লক আকারের সাথে সম্পর্কিত নয়; তারা আউটপুট ব্যবহার করে in কমান্ডগুলি কেবল "খণ্ডগুলি" in

অবশেষে, বিভিন্ন ব্লক মাপ ব্যবহার করা বাদে, উত্তরগুলি du এবং tune2fs একই অর্থ বোঝাতে। দ্য tune2fs ফলাফল ছিল 4,096 বাইটের একটি ব্লক, এবং du ফলাফল ছিল 1,024 বাইট চার ব্লক।

ব্যবহার du

কোনও কমান্ড লাইন প্যারামিটার বা বিকল্প নেই, du বর্তমান ডিরেক্টরিটি এবং সমস্ত উপ-ডিরেক্টরিগুলি ব্যবহার করছে এমন মোট ডিস্কের স্থানের তালিকা করে lists

আসুন একটি উদাহরণ দেখুন:

du

আকারটি প্রতি ব্লক 1,024 বাইটের ডিফল্ট ব্লক আকারে রিপোর্ট করা হয়। পুরো সাব-ডাইরেক্টরি গাছটি বিপর্যস্ত।

ব্যবহার du একটি ভিন্ন ডিরেক্টরিতে

তুমি যদি চাওdu বর্তমানের চেয়ে আলাদা ডিরেক্টরিতে রিপোর্ট করতে, আপনি কমান্ড লাইনের ডিরেক্টরিতে পথটি পাস করতে পারেন:

ডু ~ / .ক্যাচ / বিবর্তন /

ব্যবহার du একটি নির্দিষ্ট ফাইল উপর

তুমি যদি চাওdu একটি নির্দিষ্ট ফাইলে রিপোর্ট করতে, কমান্ড লাইনে সেই ফাইলটির পথটি পাস করুন। আপনি কোনও গ্রুপের ফাইল নির্বাচন করতে শেল প্যাটার্নটিও পাস করতে পারেন, যেমন * .txt:

ডু ~ / .বাশ_্যালিয়াসেস

ডিরেক্টরিগুলিতে ফাইলগুলিতে প্রতিবেদন করা

আছে du বর্তমান ডিরেক্টরি এবং সাব ডিরেক্টরি ডিরেক্টরি ফাইলগুলি রিপোর্ট করুন -এ (সমস্ত ফাইল) বিকল্প:

du -a

প্রতিটি ডিরেক্টরি জন্য, প্রতিটি ফাইলের আকার হিসাবে রিপোর্ট করা হয়, পাশাপাশি প্রতিটি ডিরেক্টরি জন্য মোট।

ডিরেক্টরি গাছ গভীরতা সীমিত

আপনি বলতে পারেন du ডিরেক্টরি ট্রি একটি নির্দিষ্ট গভীরতায় তালিকাভুক্ত। এটি করতে, ব্যবহার করুন -ডি (সর্বাধিক গভীরতা) বিকল্প এবং পরামিতি হিসাবে একটি গভীরতার মান প্রদান। নোট করুন যে সমস্ত উপ-ডিরেক্টরিগুলি রিপোর্ট করা মোট গণনা করতে স্ক্যান করা হয় এবং ব্যবহৃত হয় তবে সেগুলি সমস্ত তালিকাভুক্ত নয়। এক স্তরের সর্বোচ্চ ডিরেক্টরি গভীরতা নির্ধারণ করতে, এই আদেশটি ব্যবহার করুন:

du -d ঘ

আউটপুট বর্তমান ডিরেক্টরিতে সেই উপ-ডিরেক্টরিটির মোট আকারের তালিকাবদ্ধ করে এবং প্রতিটিটির জন্য মোট সরবরাহ করে।

ডিরেক্টরিগুলি এক স্তরের গভীরতর তালিকাভুক্ত করতে, এই কমান্ডটি ব্যবহার করুন:

du -d 2

ব্লকের আকার নির্ধারণ করা হচ্ছে

আপনি ব্যবহার করতে পারেন ব্লক এর জন্য একটি ব্লকের আকার সেট করার বিকল্প du বর্তমান অপারেশন জন্য। একটি বাইটের একটি ব্লক আকার ব্যবহার করতে, ডিরেক্টরি এবং ফাইলগুলির সঠিক আকার পেতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

du - block = 1

আপনি যদি একটি মেগাবাইটের একটি ব্লক আকার ব্যবহার করতে চান তবে আপনি এটি ব্যবহার করতে পারেন -ম (মেগাবাইট) বিকল্প, যা একই --ব্লক = 1 এম:

du -m

আপনি যদি ডিরেক্টরি এবং ফাইলগুলির দ্বারা ব্যবহৃত ডিস্কের স্থান অনুযায়ী সর্বাধিক উপযুক্ত ব্লক আকারে রিপোর্ট করা মাপগুলি চান তবে এটি ব্যবহার করুন -হ (মানব-পঠনযোগ্য) বিকল্প:

du -h

ফাইলটি সঞ্চয় করতে ব্যবহৃত হার্ড ড্রাইভের জায়গার চেয়ে ফাইলটির আপাত আকার দেখতে, ব্যবহার করুন - আকার-আকার বিকল্প:

ডু - অভিভাবক-আকার

আপনি এটির সাথে একত্রিত করতে পারেন -এ (সমস্ত) প্রতিটি ফাইলের আপাত আকার দেখতে বিকল্প:

ডু - অভিভাবক-আকার -a

প্রতিটি ফাইল তার আপাত আকারের সাথে তালিকাবদ্ধ থাকে।

কেবলমাত্র টোটাল প্রদর্শন করা হচ্ছে

তুমি যদি চাওdu ডিরেক্টরিতে কেবল মোট রিপোর্ট করতে, ব্যবহার করুন -স (সংক্ষিপ্তকরণ) বিকল্প। আপনি এটি অন্যান্য বিকল্পগুলির সাথেও একত্র করতে পারেন the -হ (মানব-পঠনযোগ্য) বিকল্প:

du -h -s

এখানে, আমরা এটির সাথে ব্যবহার করব - আকার-আকার বিকল্প:

du - আপত্তিজনক আকার -s

সংশোধন টাইমস প্রদর্শন করা হচ্ছে

নির্মাণ বা শেষ পরিবর্তন সময় এবং তারিখ দেখতে, ব্যবহার করুন - সময় বিকল্প:

du - সময় -d 2

আজব ফলাফল?

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

যদি আপনার অন্যান্য কমান্ডের আউটপুট মেলাতে প্রয়োজন হয় তবে --ব্লক বিকল্প du.


$config[zx-auto] not found$config[zx-overlay] not found