ใน Unix (Tru64) ฉันจะทำให้ls
คำสั่งแสดงขนาดไฟล์เป็นเมกะไบต์ได้อย่างไร ขณะนี้ฉันสามารถแสดงเป็นไบต์โดยใช้สิ่งต่อไปนี้:
ls -la
ใน Unix (Tru64) ฉันจะทำให้ls
คำสั่งแสดงขนาดไฟล์เป็นเมกะไบต์ได้อย่างไร ขณะนี้ฉันสามารถแสดงเป็นไบต์โดยใช้สิ่งต่อไปนี้:
ls -la
คำตอบ:
อาจ-h
จะเพียงพอสำหรับคุณ:
-h
เมื่อใช้กับตัวเลือก -l ให้ใช้คำต่อท้ายหน่วย: ไบต์, กิโลไบต์, Megabyte, Gigabyte, Terabyte และ Petabyte เพื่อลดจำนวนหลักเป็นสามหรือน้อยกว่าโดยใช้ฐาน 2 สำหรับขนาด
ls -lah
คำแนะนำทั่วไป: ใช้man commandname
อ่านคู่มือ / man ls
ความช่วยเหลือของคำสั่งบางอย่างเช่นที่นี่
ls --block-size=M
พิมพ์ขนาดเป็นเมกะไบต์ แต่แสดง 1MB ด้วยค่าต่ำกว่า 1 MB ฉันไม่แน่ใจว่าตัวเลือกนี้เป็นที่ยอมรับใน ls เวอร์ชัน UNIX ของคุณหรือไม่
ที่จริงแล้วls -lh
ยังพิมพ์ขนาดเป็นกิกะไบต์หากไฟล์มีขนาดใหญ่พอ (ยังไงก็ตาม: บนLinux 64 บิตมันใช้งานได้:>)
บนโหนดด้านข้าง: du -sh *
พิมพ์ขนาดไดเร็กทอรีในไดเร็กทอรีปัจจุบันด้วย
ls -h
นั้นไม่มีความหมายหลังจากไฟล์มีขนาดเกิน 1GB ดังนั้นฉันจึงใช้คำสั่งนี้ในการวนซ้ำ 1 วินาที:while true ; do ls -al --block-size=M ; sleep 1 ; done
คุณจะต้องใช้awk
ในการทำคณิตศาสตร์สำหรับคุณ:
ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'
mega
นี้จะไม่ส่งผลกระทบต่อการส่งออกสำหรับไฟล์ที่มีขนาดเล็กกว่า
คุณอาจต้องปรับหมายเลขฟิลด์เพื่อให้ตรงกับวิธีการls
จัดวางของคุณ คุณสามารถเปลี่ยนmega
เป็น "1000000" ได้หากคุณต้องการ
นี่จะพิมพ์ทศนิยมมากกว่าที่คุณต้องการ คุณสามารถใช้ฟังก์ชั่นการปัดเศษ
ls -lh
หรือls --block-size=M
มาก แต่ AWK มีประโยชน์มาก!
ลองls -shR
รูปแบบการอ่านซ้ำของมนุษย์
-h
ใน Tru64และทำเช่นนั้นเกินสองปีก่อนที่คำตอบนี้จะโพสต์
ลองls -lash
พิมพ์ขนาดในรูปแบบที่มนุษย์อ่านได้
du -sm filename.txt
คุณยังสามารถพิมพ์
du -sh ./*
นี้จะแสดงรายการโฟลเดอร์ทั้งหมดภายใต้ไดเรกทอรีปัจจุบันด้วยรูปแบบที่มนุษย์สามารถอ่านได้รวมถึงขนาดไฟล์ที่คุ้นเคยมากขึ้นใน Kb, Mb, Gb
หากคุณต้องการขนาดของไฟล์เพียงไฟล์เดียวคำสั่งการคาดการณ์เล็กน้อยของคำตอบก่อนหน้าคือ:
ชื่อไฟล์ ls -sh
-s
สำหรับขนาดและh
สำหรับมนุษย์อ่านได้ (ดังกล่าวข้างต้นไม่กี่ครั้ง)
ผลลัพธ์จะมีลักษณะดังนี้:
753M myfilename
หากคุณปล่อยชื่อไฟล์ออกมามันจะแสดงรายการไดเรกทอรีวางขนาดของแต่ละไฟล์ถัดจากชื่อ - ไม่ต่างจากชื่อls -la
เมื่อเรียกใช้โดยไม่มีอาร์กิวเมนต์ของชื่อไฟล์
หวังว่านี่จะช่วยได้
-h
ไม่มีตัวเลือกในls
ระบบนั้น
ls -l --block-size=MB
สำหรับ--block-size
พารามิเตอร์:
MB
สำหรับ 10 ^ 6M
สำหรับ 2 ^ 20 เท่านั้น1MB
ล้านบาทจะแสดงเป็น ด้วยเหตุนี้ฉันจึงพบว่าls -l --block-size=kB
มีประโยชน์มากกว่า
หากคุณสนใจขนาดไฟล์และคุณไม่จำเป็นต้องใช้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
นี่จะพิมพ์ขนาดไฟล์โดยไม่ต้องแยกวิเคราะห์อะไร