لینکس میں فائل یا ڈائرکٹری کا سائز کس طرح حاصل کریں
جب آپ لینکس استعمال کرتے ہیں du
کمانڈ ، آپ ڈسک کا اصل استعمال اور فائل یا ڈائرکٹری کا صحیح سائز دونوں حاصل کرتے ہیں۔ ہم وضاحت کریں گے کہ کیوں یہ قدریں ایک جیسی نہیں ہیں۔
اصل ڈسک کا استعمال اور صحیح سائز
کسی فائل کا سائز اور اس کی جگہ جو آپ کی ہارڈ ڈرائیو پر رکھتی ہے شاذ و نادر ہی ایک جیسے ہوتے ہیں۔ بلاکس میں ڈسک کی جگہ مختص کی گئی ہے۔ اگر فائل کسی بلاک سے چھوٹی ہے تو پھر بھی اس کے لئے ایک پورا بلاک مختص کیا جاتا ہے کیونکہ فائل سسٹم میں رئیل اسٹیٹ کے استعمال کے ل a چھوٹی یونٹ نہیں ہے۔
جب تک فائل کا سائز بلاکس کا عین مطابق متعدد نہ ہو ، ہارڈ ڈرائیو پر جس جگہ کا استعمال کرتی ہے اسے ہمیشہ اگلے پورے بلاک تک پکڑ لیا جانا چاہئے۔ مثال کے طور پر ، اگر کوئی فائل دو بلاکس سے بڑی ہے لیکن تین سے چھوٹی ہے ، اسے ذخیرہ کرنے کے لئے ابھی بھی تین بلاکس کی جگہ درکار ہے۔
فائل کی جسامت کے سلسلے میں دو پیمائشیں استعمال ہوتی ہیں۔ سب سے پہلے فائل کا اصل سائز ہے ، جو فائل بنانے والے مواد کے بائٹس کی تعداد ہے۔ دوسرا ہارڈ ڈسک پر فائل کا موثر سائز ہے۔ یہ فائل سسٹم کے لئے ضروری فائل سسٹم بلاکس کی تعداد ہے۔
ایک مثال
آئیے ایک سادہ سی مثال دیکھتے ہیں۔ ہم ایک چھوٹی فائل بنانے کے لئے ایک ہی کردار کو ایک فائل میں ری ڈائریکٹ کریں گے۔
بازگشت "1"> geek.txt
اب ، ہم طویل فارمیٹ کی فہرست کا استعمال کریں گے ،ls
، فائل کی لمبائی کو دیکھنے کے لئے:
ls -l geek.txt
لمبائی عددی قیمت ہے جو اس کی پیروی کرتی ہے ڈیو ڈیو
اندراجات ، جو دو بائٹس ہیں۔ جب ہم صرف ایک کردار فائل میں بھیجتے ہیں تو یہ کیوں دو بائٹس ہیں؟ آئیے ذرا ایک نظر ڈالیں کہ فائل کے اندر کیا ہو رہا ہے۔
ہم استعمال کریں گے ہیکس ڈمپ
کمانڈ ، جو ہمیں عین مطابق بائٹ گنتی فراہم کرے گا اور غیر پرنٹنگ حروف کو ہیکساڈیسمل اقدار کے طور پر "دیکھنے" کی اجازت دے گا۔ ہم بھی استعمال کریں گے -سی
(صراحت) آپٹ کو آؤٹ پٹ کو جسم میں ہیکساڈسمل اقدار ظاہر کرنے پر مجبور کرنے کا اختیار ، اور ساتھ ہی ان کے حرفی عنصر کے متوازن بھی۔
hexdump -C geek.txt
آؤٹ پٹ سے پتہ چلتا ہے کہ ، فائل میں 00000000 کے آغاز سے ، ایک بائٹ ہے جس میں 31 کی ہیکساڈیسمل قدر ہوتی ہے ، اور ایک جس میں 0A کی ہیکساڈسیمل قدر ہوتی ہے۔ آؤٹ پٹ کے دائیں بائیں ان اقدار کو حرف عددی حرف کے طور پر دکھایا گیا ہے ، جہاں بھی ممکن ہو۔
ہندسہ اعشاریہ 31 کی قیمت کو ہندسے کی نمائندگی کرنے کے لئے استعمال کیا جاتا ہے۔ 0A کی ہیکساڈیسمل قیمت کا استعمال لائن فیڈ کیریکٹر کی نمائندگی کرنے کے لئے کیا جاتا ہے ، جسے الف۔ لائن فیڈ کریکٹر کے ذریعہ شامل کیا گیا ہے بازگشت
. پہلے سے طے شدہ ،بازگشت
ٹرمینل ونڈو پر لکھنے کے لئے درکار متن دکھائے جانے کے بعد ایک نئی لائن شروع ہوتی ہے۔
آؤٹ پٹ کے ساتھ لمبا ہےls
اور دو بائٹس کی فائل لمبائی سے اتفاق کرتا ہے۔
متعلقہ:لینکس پر فائلوں اور ڈائرکٹریوں کی فہرست کے لئے ls کمانڈ کا استعمال کیسے کریں
اب ، ہم استعمال کریں گے du
فائل کے سائز کو دیکھنے کے لئے کمانڈ:
du geek.txt
اس کا کہنا ہے کہ سائز چار ہے ، لیکن اس میں سے چار کیا ہے؟
بلاک ہیں ، اور پھر بلاک ہیں
کب du
بلاکس میں فائل کے سائز کی اطلاع دیتا ہے ، جس کا استعمال اس کا سائز کئی عوامل پر منحصر ہوتا ہے۔ آپ واضح کرسکتے ہیں کہ کمانڈ لائن پر اسے کون سا بلاک سائز استعمال کرنا چاہئے۔ اگر آپ مجبور نہیں کرتے ہیں du
کسی خاص بلاک سائز کو استعمال کرنے کے ل it ، یہ فیصلہ کرنے کے لئے قواعد و ضوابط کی پیروی کرتا ہے کہ کون سا استعمال کرنا ہے۔
سب سے پہلے ، یہ مندرجہ ذیل ماحولیاتی متغیرات کی جانچ کرتا ہے:
- DU_BLOCK_SIZE
- بلاک_آس
- بلاک کریں
اگر ان میں سے کوئی موجود ہے تو ، بلاک کا سائز طے شدہ ہے ، اور du
چیک کرنا بند کر دیتا ہے۔ اگر کوئی سیٹ نہیں کیا گیا ہے ،du
1،024 بائٹ کے بلاک سائز سے پہلے سے طے شدہ۔ جب تک کہ ، یعنی ماحولیاتی متغیر کہلائے POSIXLY_CORRECT
سیٹ ہے۔ اگر ایسی بات ہے تو ، du
پہلے سے طے شدہ 512 بائٹ کے بلاک سائز میں۔
تو ، ہم یہ کیسے معلوم کریں گے کہ کون سا استعمال میں ہے؟ آپ اس پر عمل کرنے کے لئے ہر ماحول کے متغیر کی جانچ کرسکتے ہیں ، لیکن ایک تیز طریقہ ہے۔ آئیے اس کے بجائے فائل سسٹم کے استعمال کردہ بلاک سائز سے نتائج کا موازنہ کریں۔
فائل سسٹم کے استعمال کردہ بلاک سائز کو دریافت کرنے کیلئے ، ہم اس کا استعمال کریں گے tune2fs
پروگرام. تب ہم اسے استعمال کریں گے -l
(فہرست کو روکنے کے ل option) اختیار ، اس کے ذریعہ آؤٹ پٹ کو پائپ کریں گریپ
، اور پھر ان لائنوں کو پرنٹ کریں جن میں "بلاک" کا لفظ ہے۔
اس مثال میں ، ہم فائل ہارڈ ڈرائیو کے پہلے حصے میں فائل سسٹم کو دیکھیں گے ، sda1
، اور ہمیں استعمال کرنے کی ضرورت ہوگی sudo
:
sudo tune2fs -l / dev / sda1 | گریپ بلاک
فائل سسٹم بلاک کا سائز 4،096 بائٹ ہے۔ اگر ہم اس کو تقسیم کے ذریعہ حاصل کرلیں du
(چار) ، یہ ظاہر کرتا ہےdu
پہلے سے طے شدہ بلاک کا سائز 1،024 بائٹ ہے۔ اب ہم کئی اہم چیزوں کو جانتے ہیں۔
پہلے ، ہم فائل سسٹم ریل اسٹیٹ کی سب سے چھوٹی رقم جانتے ہیں جو فائل کو اسٹور کرنے کے لئے وقف کی جاسکتی ہے 4،096 بائٹ ہے۔ اس کا مطلب ہے یہاں تک کہ ہماری چھوٹی ، دو بائٹ فائل میں 4 کلو ہارڈ ڈرائیو کی جگہ حاصل ہے۔
دوسری چیز کو دھیان میں رکھنا ہے وہ درخواستیں جو ہارڈ ڈرائیو اور فائل سسٹم کے اعدادوشمار پر رپورٹنگ کے لئے وقف ہیں du
, ls
، اورtune2fs
، "بلاک" کا کیا مطلب ہے اس کے بارے میں مختلف تاثرات ہوسکتے ہیں۔ tune2fs
ایپلیکیشن صحیح فائل سسٹم بلاک سائز کی اطلاع دیتی ہے ، جبکہls
اور du
تشکیل دی جا سکتی ہے یا دوسرے بلاک سائز کو استعمال کرنے پر مجبور کیا جاسکتا ہے۔ ان بلاک سائز کا مقصد فائل سسٹم بلاک سائز سے متعلق نہیں ہے۔ وہ صرف "ٹکڑے" ہیں جو وہ کمانڈز اپنی پیداوار میں استعمال کرتے ہیں۔
آخر میں ، مختلف بلاک سائز استعمال کرنے کے علاوہ ، جوابات du
اور tune2fs
ایک ہی معنی بیان کریں۔ tune2fs
نتیجہ 4،096 بائٹ کا ایک بلاک تھا ، اور du
نتیجہ چار بلاکس 1،024 بائٹس کا تھا۔
استعمال کرنا du
کمانڈ لائن پیرامیٹرز یا اختیارات کے بغیر ، du
موجودہ ڈائرکٹری میں کل ڈسک کی جگہ اور سب ڈائرکٹریاں استعمال کررہی ہیں۔
آئیے ایک مثال ملاحظہ کریں:
du
سائز فی بلاک 1،024 بائٹس کے پہلے سے طے شدہ بلاک سائز میں بتایا جاتا ہے۔ سب ڈائرکٹوری کا درخت عبور ہے۔
استعمال کرنا du
ایک مختلف ڈائرکٹری پر
اگر آپ چاہیںdu
موجودہ ڈائریکٹری سے مختلف ڈائریکٹری پر رپورٹ کرنے کے لئے ، آپ کمانڈ لائن پر ڈائریکٹری کا راستہ آگے بڑھ سکتے ہیں:
ڈو ~ / .کچ / ارتقاء /
استعمال کرنا du
ایک مخصوص فائل پر
اگر آپ چاہیںdu
کسی مخصوص فائل پر اطلاع دینے کے لئے ، اس فائل کا راستہ کمانڈ لائن پر گزریں۔ آپ فائلوں کے کسی گروپ کو منتخب کرنے کے لئے بھی شیل کا نمونہ منتقل کرسکتے ہیں ، جیسے *.TXT
:
ڈو ~ / .بش_الیسز
ڈائریکٹریوں میں فائلوں پر رپورٹنگ
ہے کرنا du
موجودہ ڈائریکٹری اور سب ڈائرکٹریاں میں فائلوں پر رپورٹ کریں ، استعمال کریں -ا
(تمام فائلیں) اختیار:
ڈو-اے
ہر ڈائریکٹری کے لئے ، ہر فائل کی جسامت کے ساتھ ساتھ ہر ایک ڈائرکٹری کے لئے بھی کل اطلاع دی جاتی ہے۔
ڈائرکٹری کے درخت کی گہرائی کو محدود کرنا
اپ بتا سکتے ہیں du
ایک خاص گہرائی میں ڈائریکٹری کے درخت کی فہرست ایسا کرنے کے لئے ، استعمال کریں -ڈی
(زیادہ سے زیادہ گہرائی) کا اختیار اور پیرامیٹر کی حیثیت سے گہرائی کی قیمت فراہم کریں۔ نوٹ کریں کہ تمام ذیلی ڈائریکٹریاں اسکین کی گئی ہیں اور اطلاع دیئے گئے کل کے حساب کتاب کرنے کے لئے استعمال کی گئی ہیں ، لیکن وہ سب درج نہیں ہیں۔ ایک سطح کی زیادہ سے زیادہ ڈائریکٹری گہرائی قائم کرنے کے لئے ، اس کمانڈ کا استعمال کریں:
du -d 1
آؤٹ پٹ موجودہ ڈائریکٹری میں اس سب ڈائرکٹری کے کل سائز کو درج کرتی ہے اور ہر ایک کے لئے بھی کل فراہم کرتی ہے۔
ایک درجے کی گہری ڈائریکٹریوں کی فہرست کے ل this ، یہ کمانڈ استعمال کریں:
du -d 2
بلاک سائز طے کرنا
آپ استعمال کرسکتے ہیں بلاک
کے لئے ایک بلاک سائز مقرر کرنے کا اختیار du
موجودہ آپریشن کے لئے ایک بائٹ کے بلاک سائز کو استعمال کرنے کے لئے ، ڈائریکٹریوں اور فائلوں کے عین مطابق سائز حاصل کرنے کے لئے درج ذیل کمانڈ کا استعمال کریں:
ڈو - بلاک = 1
اگر آپ ایک میگا بائٹ کے بلاک سائز کو استعمال کرنا چاہتے ہیں تو ، آپ اسے استعمال کرسکتے ہیں -م
(میگا بائٹ) آپشن ، جو ویسا ہی ہے - بلاک = 1 ایم
:
du -m
اگر آپ ڈائریکٹریوں اور فائلوں کے ذریعہ استعمال ہونے والی ڈسک کی جگہ کے مطابق انتہائی مناسب بلاک سائز میں درج کردہ سائز کو استعمال کرنا چاہتے ہیں تو ، استعمال کریں -h
(انسانی پڑھنے کے قابل) آپشن:
du -h
فائل کو ذخیرہ کرنے کے لئے استعمال ہونے والی ہارڈ ڈرائیو کی جگہ کی بجائے فائل کا ظاہر سائز دیکھنے کے ل the ، استعمال کریں - ظاہر سائز
آپشن:
du - واضح سائز
آپ اسے ربط کے ساتھ جوڑ سکتے ہیں -ا
(تمام) ہر فائل کا ظاہر سائز دیکھنے کا آپشن:
du - واضح سائز -ا
ہر فائل اپنے ظاہر سائز کے ساتھ ساتھ درج ہے۔
صرف کل دکھایا جارہا ہے
اگر آپ چاہیںdu
ڈائرکٹری کے لئے صرف کل رپورٹ کرنے کے لئے ، استعمال کریں -s
(خلاصہ) آپشن۔ آپ اسے دوسرے اختیارات کے ساتھ بھی جوڑ سکتے ہیں ، جیسے -h
(انسانی پڑھنے کے قابل) آپشن:
du -h -s
یہاں ، ہم اسے اس کے ساتھ استعمال کریں گے - ظاہر سائز
آپشن:
du - واضح سائز -s
ترمیم کے اوقات دکھائے جارہے ہیں
تخلیق یا آخری ترمیم کا وقت اور تاریخ دیکھنے کے ل the ، استعمال کریں - وقت
آپشن:
du - وقت -d 2
عجیب نتائج؟
اگر آپ کو حیرت انگیز نتائج دیکھنے کو مل رہے ہیں du
، خاص طور پر جب آپ دوسرے احکامات سے حاصل شدہ آؤٹ پٹ کے لئے مختلف سائزوں کو عبور کرتے ہیں تو ، یہ عام طور پر مختلف بلاک سائز کی وجہ سے ہوتا ہے جس پر مختلف کمانڈز سیٹ کیے جاسکتے ہیں یا جن میں وہ پہلے سے طے شدہ ہیں۔ یہ حقیقی فائل کے سائز اور ان کو ذخیرہ کرنے کے لئے درکار ڈسک کی جگہ کے درمیان فرق کی وجہ سے بھی ہوسکتا ہے۔
اگر آپ کو دیگر احکامات کی پیداوار سے ملنے کی ضرورت ہے تو ، کے ساتھ تجربہ کریں - block
میں اختیار du
.