2010-02-10 11 views
7

मैं चर के रूप में फ़ाइल का आकार प्राप्त करना चाहता हूं? उसको कैसे करे?लिनक्स खोल फ़ाइल का आकार

ls -l | grep testing.txt | cut -f6 -d' ' 

आकार दिया लेकिन इसे शैल चर में कैसे स्टोर किया जाए?

+0

बैश मुझे लगता है? – ziya

+0

हाँ यह बैश खोल है और आप सभी को धन्यवाद। –

+1

संभावित डुप्लिकेट [फ़ाइल का आकार कैसे जांचें?] (Http://stackoverflow.com/questions/5920333/how-to-check-size-of-a-file) –

उत्तर

18
filesize=$(stat -c '%s' testing.txt) 
+2

'stat -f '% z''' कोई गारंटी नहीं है कि आकार-क्षेत्र में आकार 6 के क्षेत्र में होगा। – Matt3o12

1
size=`ls -l | grep testing.txt | cut -f6 -d' '` 
+0

पर –

+0

यह भी अक्षम है क्योंकि निर्देशिका में 'gres' सूचियों * सभी * फ़ाइलों में पाइपिंग 'ls' और उनके नामों को टाइप करता है (जो हजारों फ़ाइलों के साथ निर्देशिका में पर्याप्त मात्रा ले सकता है), और इसके अतिरिक्त त्रुटि-प्रवण क्योंकि 'grep test.txt' 'not_testingatxt_file' जैसे नामों के साथ फ़ाइलों को भी लौटाता है (जैसा कि रेगेक्स में' .'' का मतलब है मिलान-किसी-चरित्र)। –

4

आप इसे ls साथ इस तरह से कर सकते हैं

$ var=$(ls -s1 testing.txt|awk '{print $1}') 

(-s के अर्थ के लिए आदमी पृष्ठ की जाँच) या आप -c '%s'

साथ stat उपयोग कर सकते हैं या आप उपयोग कर सकते हैं ढूंढें (जीएनयू)

$ var=$(find testing.txt -printf "%s") 
+0

खोज समाधान विंडोज पर MINGW और गिट बैश पर काम करता है। अन्य उत्तरों में से कोई भी एमआईएनडब्ल्यू पर काम नहीं करता है। – JDiMatteo

+0

यदि आप एक * संस्करण * हर * POSIX सिस्टम पर काम करना चाहते थे, तो 'wc -c'' जीएनयू 'find' या' stat' उपलब्ध होने पर या तो 'ls' व्यवहार * या * पर भरोसा करने से बेहतर होगा। –

+0

ध्यान दें कि wc -c छद्म फ़ाइलों जैसे/proc/cpuinfo के लिए अधिक सटीक है – pixelbeat

3
size() { 
    file="$1" 
    if [ -b "$file" ]; then 
    /sbin/blockdev --getsize64 "$file" 
    else 
    wc -c < "$file" # Handles pseudo files like /proc/cpuinfo 
    # stat --format %s "$file" 
    # find "$file" -printf '%s\n' 
    # du -b "$file" | cut -f1 
    fi 
} 

fs=$(size testing.txt) 
संबंधित मुद्दे