ls-command: मेगाबाइट में फ़ाइल का आकार कैसे प्रदर्शित करें?


161

Unix (Tru64) में, मैं lsमेगाबाइट में फ़ाइल का आकार कैसे दिखाऊं ? वर्तमान में मैं इसे निम्नलिखित का उपयोग करके बाइट्स में दिखाने में सक्षम हूं:

ls -la

जवाबों:


247

शायद -hआपके लिए पर्याप्त है:

-h
जब -l विकल्प के साथ उपयोग किया जाता है, तो यूनिट प्रत्यय का उपयोग करें: बाइट, किलोबाइट, मेगाबाइट, गीगाबाइट, टेराबाइट और पेटाबाइट ताकि अंकों की संख्या 2 से घटाकर तीन या उससे कम हो।

ls -lah

सामान्य सलाह: man commandnameएक निश्चित कमांड के मैनुअल / सहायता को पढ़ने के लिए उपयोग करें , जैसे यहां man ls


1
धन्यवाद, लेकिन -h विकल्प Tru64 यूनिक्स पर मौजूद नहीं है।

8
सामान्य सलाह: जीएनयू उपयोगिताओं को स्थापित करें ...
रीयरियरपोस्ट

22
मुझे मनुष्य का उपयोग करने के बारे में आपकी टिप पसंद है, लेकिन वास्तव में, Google पर खोज करना बहुत अधिक समय का उपयोग करने की तुलना में बहुत तेज है (जैसा कि अब, जब मुझे Google पर यह परिणाम मिला)।
त्रुष्कर

4
Google के ठीक हैं और सामान्य संकेतों के लिए सभी, लेकिन अंततः मैन पेज सिस्टम / ओएस हैं, यहां तक ​​कि विशिष्ट होस्ट, आमतौर पर जब सॉफ़्टवेयर संकलित या स्थापित किया जाता है, और इस प्रकार, आपके विशेष सिस्टम पर सॉफ़्टवेयर के लिए आधिकारिक।
नेविन विलियम्स

1
बस फुल सर्कल में आने के लिए, ग्नू / लाइनक्स के लिए ऑनलाइन आदमी है: linux.die.net/man
MariusMatutiae

32

ls --block-size=Mमेगाबाइट में आकार प्रिंट करता है लेकिन 1 एमबी से नीचे की किसी भी चीज़ के लिए 1 एमबी भी दिखाता है। मैं अनिश्चित हूँ अगर यह विकल्प ls के आपके UNIX संस्करण में स्वीकार्य है, हालाँकि।

वास्तव ls -lhमें अगर फ़ाइल काफी बड़ी है तो गीगाबाइट में भी आकार प्रिंट करता है (वैसे भी: लिनक्स 64 बिट पर यह काम करता है:>)

एक तरफ नोड पर: du -sh *वर्तमान निर्देशिका में प्रिंट भी निर्देशिका आकार।


धन्यवाद! मुझे एक फ़ोल्डर में लाइव फ़ाइल परिवर्तनों की निगरानी करने की आवश्यकता थी और ls -h1 जीबी से अधिक फ़ाइल बढ़ने के बाद का उपयोग करना बेकार है, इसलिए मैं 1 सेकंड के लूप में इस कमांड का उपयोग करता हूं:while true ; do ls -al --block-size=M ; sleep 1 ; done
ccpizza

15

आपको awkअपने लिए गणित करने के लिए उपयोग करना होगा:

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

यह उन फ़ाइलों के आउटपुट को प्रभावित नहीं करेगा जो इससे छोटी हैं mega

आपके lsद्वारा निर्धारित तरीके से मिलान करने के लिए आपको फ़ील्ड संख्या को समायोजित करने की आवश्यकता हो सकती है। megaयदि आपकी प्राथमिकता है तो आप "1000000" में बदल सकते हैं।

यह आपकी इच्छानुसार अधिक दशमलव स्थानों को प्रिंट करेगा। आप एक राउंडिंग फ़ंक्शन लागू कर सकते हैं।


3
ls -lhया की तुलना में बहुत कम सुरुचिपूर्ण ls --block-size=M, लेकिन AWK बहुत उपयोगी है!
स्टेटवॉक

मुझे जिस चीज की जरूरत थी। अन्य सभी समाधान निकटतम MB पर गोल हो जाते हैं लेकिन यह कुछ दशमलव स्थानों को दिखाता है और आसानी से अनुकूलन योग्य है।
जीरोइम्प्ल

3
यह उन प्रणालियों के लिए एक अच्छा समाधान है (AIX - मैं आपको देख रहा हूं) जिनके पास -h विकल्प नहीं है।
बुग्गाबिल

14

ls -shRपुनरावर्ती मानव पठनीय प्रारूप के लिए प्रयास करें ।


4
ओपी ने कहा है कि -hTru64 पर कोई भी नहीं है , और इस उत्तर को पोस्ट करने से पहले दो साल से अधिक समय तक किया।
बजे एक CVn

3
सोचा कि यह मेरी जिम्मेदारी है कि जो लोग एक ही Google खोज के साथ यहां तक ​​पहुंचे।
सॉर्टर

8

कोशिश करो ls -lash, यह मानव पठनीय प्रारूप में आकार प्रिंट करता है


5

du -sm filename.txt


1
यह हमेशा आकार को गोल करता है ... यदि आकार 1 एमबी से कम 500K कहता है, तो यह 1M भी प्रिंट करेगा
AnonGeek

5

आप भी टाइप कर सकते हैं

du -sh ./*

यह सभी निर्देशिकाओं को वर्तमान निर्देशिका के अंतर्गत मानव-पठनीय प्रारूप के साथ सूचीबद्ध करेगा, जिसमें Kb, Mb, Gb में अधिक परिचित फ़ाइल आकार शामिल हैं।


2

यदि आप केवल एक विशिष्ट फ़ाइल का आकार चाहते हैं, तो कमांड, पिछले उत्तरों का एक तुच्छ विवरण है:

ls-s फ़ाइल नाम

-sआकार के लिए है और hमानव पठनीय के लिए है (जैसा कि कुछ समय ऊपर बताया गया है)।

आउटपुट इस तरह दिखेगा:

753M myfilename

यदि आप फ़ाइल नाम छोड़ते हैं, तो यह निर्देशिका को सूचीबद्ध करेगा, इसके नाम के आगे प्रत्येक फ़ाइल का आकार रखकर - इसके विपरीत ls -laनहीं जब कोई फ़ाइल नाम तर्कों के साथ लागू नहीं होता है।

उम्मीद है की यह मदद करेगा।


2
यह प्रश्न Tru64 यूनिक्स के बारे में है, और ओपी ने लगभग पांच साल पहले कहा था कि उस प्रणाली -hमें विकल्प मौजूद नहीं है ls
जी-मैन

2
ls -l --block-size=MB 

के लिए --block-sizeपैरामीटर:

  • MB10 ^ 6 के लिए उपयोग करें
  • बस M2 ^ 20 के लिए उपयोग करें

ध्यान दें कि यह कोई दशमलव स्थान नहीं दिखाएगा । इसके अलावा, 0 kB से ऊपर की कोई भी चीज और न ही 1 MB से अधिक दिखाई जाएगी1MB । इस कारण मैं ls -l --block-size=kBअधिक उपयोगी पाया गया।
DaAwesomeP

0

यदि आप फ़ाइल आकार में रुचि रखते हैं, और आपको 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

यह कुछ भी पार्स करने की आवश्यकता के बिना फ़ाइल आकार को प्रिंट करेगा।


ओपी एमबी में आकार चाहते हैं, शायद एक स्टेटमेंट विकल्प मानव पठनीय रूप में आकार का उत्पादन करेगा?
आर्केमोर

आह, वह गूंगा था। उस पकड़ने के लिए धन्यवाद। स्टेटमेंट में आकार का हेरफेर करने का विकल्प नहीं है - छाप या किसी अन्य विकल्प का जहाँ तक मुझे पता है। इसके लिए प्रिंटफ और बीसी कमांड-लाइन उपयोगिताओं के संयोजन का उपयोग करने की आवश्यकता होगी। किस मामले में, क्यों परेशान। ls और cut / awk जल्दी होगा।
SKN
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.