ฉันต้องใช้คำสั่งอะไรสำหรับ Linux lsเพื่อแสดงขนาดไฟล์เป็น MB
ฉันต้องใช้คำสั่งอะไรสำหรับ Linux lsเพื่อแสดงขนาดไฟล์เป็น MB
คำตอบ:
ls -l --block-size=Mจะให้รายการรูปแบบยาว (จำเป็นต้องดูขนาดไฟล์จริง) และขนาดไฟล์แบบกลมจนถึง MiB ที่ใกล้ที่สุด
หากคุณต้องการหน่วย MB (10 ^ 6 ไบต์) แทนที่จะเป็น MiB (2 ^ 20 ไบต์) ให้ใช้--block-size=MBแทน
หากคุณไม่ต้องการให้ต่อท้ายที่แนบมากับขนาดไฟล์ที่คุณสามารถใช้สิ่งที่ต้องการM --block-size=1MขอบคุณStéphane Chazelas ที่แนะนำสิ่งนี้
หากคุณต้องการขนาดไฟล์ในหน่วย "สมเหตุสมผล" แทนที่จะเป็นเมกะไบต์โดยเฉพาะคุณสามารถใช้-lhเพื่อรับรายการรูปแบบยาวและนำเสนอขนาดไฟล์ที่มนุษย์สามารถอ่านได้ นี้จะใช้หน่วยขนาดไฟล์เพื่อให้ขนาดของแฟ้มที่นำเสนอด้วยประมาณ 1-3 ตัวเลข (ดังนั้นคุณจะเห็นขนาดไฟล์เช่น6.1K, 151K, 7.1M, 15M, 1.5Gและอื่น ๆ
--block-sizeพารามิเตอร์อธิบายไว้ในหน้าคนสำหรับคำสั่ง ls; และค้นหาman ls SIZEมันช่วยให้หน่วยอื่นนอกเหนือจาก MB / MiB ได้เช่นกันและจากลักษณะของมัน (ฉันไม่ได้ลอง) ขนาดบล็อกโดยพลการเช่นกัน (เพื่อให้คุณสามารถดูขนาดไฟล์เป็นบล็อก 429- ไบต์จำนวนหนึ่งหากคุณต้องการ ไป)
โปรดทราบว่าทั้งสอง--block-sizeและ-hเป็นส่วนขยายของ GNU ที่ด้านบนของOpen Grouplsดังนั้นสิ่งนี้อาจใช้ไม่ได้หากคุณไม่มี userU ของ GNU (ซึ่งการติดตั้ง Linux ส่วนใหญ่ทำ) lsจาก GNU coreutils 8.5 ไม่สนับสนุน --block ไซส์และ -h ตามที่อธิบายไว้ข้างต้น ขอบคุณkojiro ที่ชี้เรื่องนี้ออกมา
--block-sizecoreutils 8.5 ซึ่งเป็นสิ่งที่ติดตั้งบนระบบ Debian Squeeze ของฉัน เนื่องจากคำถามนั้นชัดเจนสำหรับ Linux และไม่ได้ระบุสิ่งอื่นใดฉันจะยอมรับว่าผู้ใช้มีศูนย์กลางอยู่ที่แกนกลางของ GNU ฉันได้ปรับปรุงคำตอบเพื่อชี้แจงนี้ (นอกจาก Open Group ls ก็ไม่ได้มี -h เช่นกัน:))
--block-sizeคือส่วนขยาย GNU ฉันสงสัยว่า Mac OS X ไม่ได้ใช้ lsGNU
ls -lh ให้ขนาดไฟล์ที่มนุษย์สามารถอ่านได้รูปแบบยาว
มันใช้ k, M, G, และ T ต่อท้าย (หรือต่อท้ายไบต์ไม่ได้) ตามความจำเป็นดังนั้นจำนวนอยู่เล็ก ๆ เช่นหรือ1.4K178M
-h เป็นส่วนขยาย coreutils ของ GNU ไม่ใช่ POSIX พื้นฐาน
โปรดทราบว่าสิ่งนี้จะไม่ตอบคำถามตามที่ถาม หากคุณต้องการขนาดอย่างเคร่งครัดในเอ็มไอแม้สำหรับไฟล์ขนาดเล็กหรือขนาดใหญ่คำตอบที่ไมเคิลKjörlingของไม่ว่าสำหรับ lscoreutils
hเขียนง่ายกว่า--block-size=M
ls -lเลยถ้าไม่ใช่มนุษย์? : p
ls -lผลลัพธ์เป็นวิธีที่ผิดในการทำสิ่งต่าง ๆ 99% ของเวลา unix.stackexchange.com/questions/128985/why-not-parse-ls นั่นคือ 1% ที่ใจดีและ จำกัด อยู่แค่เพียงหนึ่ง liners ที่คุณเขียนด้วยการโต้ตอบสำหรับการใช้งานครั้งเดียวไม่ใช่สคริปต์ที่คุณจะใช้ซ้ำ ๆ ในชื่อไฟล์ที่ไม่รู้จัก
ls -lhS จัดเรียงตามขนาดในรูปแบบที่มนุษย์อ่านได้
ls -lhคำตอบด้วยเหตุผลว่าทำไมสิ่งนี้ไม่ตอบคำถาม
และนี่คือตัวเลือกสำหรับการแสดงรายการทุกอย่างในลำดับไดเรกทอรีโดยขนาดไฟล์ (ยังคงเป็นที่มนุษย์อ่านได้) จากน้อยไปมาก
ls -lSrh
--block-size=Mทำให้Mส่วนต่อท้ายแสดงขึ้นถัดจากขนาดและคุณสามารถใช้--block-size=1Mเพื่อละเว้นมันได้ มันอาจจะคุ้มค่าที่จะกล่าวถึงเช่นกันว่าคุณต้องการ GNU ls สำหรับสิ่งนั้น (ระบบ Linux ส่วนใหญ่ที่ไม่ได้ฝังตัวจะมี GNU ls)