سؤال الأمر ls: كيفية عرض حجم الملف بالميغابايت؟


في يونكس (Tru64) ، كيف يمكنني جعل ls يعرض الأمر حجم الملف بالميغابايت؟ يمكنني حاليًا إظهارها بالبايت باستخدام ما يلي:

ls -la

151
2017-09-20 11:20


الأصل




الأجوبة:


يمكن -h كافي بالنسبة لك:

-h
  عند استخدامها مع الخيار -l ، استخدم لاحقات الوحدة: بايت ، كيلوبايت ،               Megabyte ، جيجابايت ، تيرابايت و Petabyte من أجل الحد من               عدد الأرقام إلى ثلاثة أو أقل باستخدام الأساس 2 للأحجام.

ls -lah

نصيحة عامة: الاستخدام man commandname لقراءة دليل / مساعدة أمر معين ، على سبيل المثال ، هنا man ls.


229
2017-09-20 11:22



شكرا ، ولكن لا يبدو أن الخيار -h موجود على Tru64 يونيكس.
نصيحة عامة: تثبيت أدوات GNU ... - reinierpost
أحب معلوماتك عن استخدام الرجل ، ولكن في الحقيقة ، إن البحث على Google أسرع بكثير من استخدام الرجل في الكثير من الوقت (كما هو الحال الآن ، عندما وجدت هذه النتيجة على Google). - trusktr
إن غوغل والكل لتلميحات عامة ، ولكن في نهاية المطاف الصفحات البشرية هي نظام / نظام التشغيل ، حتى المضيف محددة ، وعادة ما تنشأ عند تجميع البرامج أو تثبيتها ، وبالتالي ، موثوق للبرنامج على نظام معين. - Nevin Williams
لمجرد الوصول إلى دائرة كاملة ، هناك رجل عبر الإنترنت لـ gnu / linux: linux.die.net/man - MariusMatutiae


ls --block-size=M يطبع الأحجام بالميجابايت لكنه يظهر 1 ميغابايت أيضًا لأي شيء أقل من 1 ميغابايت. لست متأكدًا إذا كان هذا الخيار مقبولًا في إصدار UNIX من ls ، مع ذلك.

في الواقع ls -lh يطبع أيضا الأحجام في غيغابايت إذا كان الملف كبير بما فيه الكفاية (حسنا على أي حال: في لينكس 64bit هذا يعمل:>)

على العقدة الجانبية: du -sh * يطبع أيضا أحجام الدليل في الدليل الحالي.


32
2017-09-20 12:33



شكر! كنت بحاجة لمراقبة التغييرات المباشرة للملفات في مجلد واستخدام ls -h لا معنى له بعد زيادة حجم الملف على 1 غيغابايت ، لذلك استخدم هذا الأمر في حلقة ثانية واحدة: while true ; do ls -al --block-size=M ; sleep 1 ; done - ccpizza


سوف تضطر إلى استخدام awk للقيام بالرياضيات بالنسبة لك:

ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'

لن يؤثر ذلك على إخراج الملفات الأصغر من mega.

قد تحتاج إلى ضبط رقم الحقل ليتناسب مع طريقة عملك ls وضعت. يمكنك التغيير mega إلى "1000000" إذا كان هذا هو تفضيلك.

سيؤدي هذا إلى طباعة المنازل العشرية أكثر مما تريد. يمكنك تنفيذ وظيفة التقريب.


15
2017-09-20 13:36



أقل أناقة بكثير من ls -lh أو ls --block-size=M، لكن AWK مفيد جدا! - Statwonk
فقط ما أحتاجه. جميع الحلول الأخرى حول أقرب ميغابايت ولكن هذا يظهر عدد قليل من الأماكن العشرية ويمكن تخصيصها بسهولة. - zeroimpl
هذا حل لطيف لتلك الأنظمة (AIX - أنا أنظر إليك) التي ليس لديها الخيار -h. - Buggabill


محاولة ls -shR لتنسيق الإنسان العودي القابل للقراءة.


14
2017-10-14 08:27



وقد صرح OP أنه لا يوجد -h على Tru64، وقمت بذلك أكثر من عامين قبل نشر هذه الإجابة. - α CVn
أعتقد أنه من مسؤوليتي مساعدة أولئك الذين يصلون إلى هنا ببحث Google نفسه. - Sorter


محاولة ls -lash، فإنه يطبع أحجام في تنسيق قابل للقراءة الإنسان


6
2017-09-20 11:23





du -sm filename.txt


5
2017-09-20 16:36



انها دائما تقريب حجم ... إذا كان حجم أقل من 1 MB يقول 500K ، ثم أيضا سوف يطبع 1M - AnonGeek


يمكنك أيضا اكتب

du -sh ./*

هذا سوف يسرد جميع المجلدات تحت الدليل الحالي ، مع تنسيق قابل للقراءة ، بما في ذلك أحجام الملفات المألوفة في Kb ، Mb ، Gb.


5
2018-04-19 22:57





إذا كنت تريد فقط حجم ملف معين فقط ، فإن الأمر ، وهو استقراء تافه للإجابات السابقة ، هو:

ls -sh اسم الملف (الصورة)

-s هو لحجم و h هو للقراءة البشرية (كما ذكر أعلاه عدة مرات).

سيبدو الإخراج كالتالي:

753M myfilename

إذا تركت اسم الملف (الأسماء) ، فستدرج الدليل ، مع وضع حجم كل ملف بجوار اسمه - وليس على خلاف ذلك ls -la عند استدعاء بدون وسائط اسم الملف.

أتمنى أن يساعدك هذا.


2
2018-06-13 07:36



هذا السؤال هو عن Tru64 Unix ، و OP ذكر قبل خمس سنوات تقريبا أن -h الخيار غير موجود في ls على هذا النظام. - G-Man


ls -l --block-size=MB 

ل --block-size معامل:

  • استعمال MB لمدة 10 ^ 6
  • استخدم فقط M لمدة 2 ^ 20

0
2017-07-24 18:25



لاحظ أن هذا لن تظهر أي منازل عشرية. أيضا، أي شيء أعلى من 0 كيلوبايت ولكن لا يزيد عن 1 ميغابايت سيظهر كما هو 1MB. لهذا السبب وجدت ls -l --block-size=kB لتكون أكثر فائدة. - DaAwesomeP


إذا كنت مهتمًا فقط بحجم الملف ، ولن تحتاج إلى استخدام ls حاول القيام بما يلي:

# echo "Hello World" > file.txt
# ls -l file.txt 
-rw-r--r-- 1 user user 12 Mar 10 11:32 file.txt
# stat --printf='%s\n' file.txt
12

هذا سوف يطبع حجم الملف دون الحاجة لتحليل أي شيء.


0
2018-03-10 17:34



OP تريد الحجم بالميجابايت ، ربما سينتج عن خيار الإحصاء حجم في شكل مقروء بشري؟ - Archemar
آه ، هذا كان غبي مني. شكرا لاصطياد ذلك. stat ليس لديه خيار للتلاعب بالحجم باستخدام - printingf أو أي خيار آخر بقدر ما أعرف. من المحتمل أن يتطلب ذلك استخدام مجموعة من الأدوات المساعدة لسطر الأوامر printf و bc. في هذه الحالة ، لماذا تهتم. ليرة سورية وقطع / awk سيكون أسرع. - SKN