ฉันต้องใช้คำสั่งอะไรสำหรับ 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-size
coreutils 8.5 ซึ่งเป็นสิ่งที่ติดตั้งบนระบบ Debian Squeeze ของฉัน เนื่องจากคำถามนั้นชัดเจนสำหรับ Linux และไม่ได้ระบุสิ่งอื่นใดฉันจะยอมรับว่าผู้ใช้มีศูนย์กลางอยู่ที่แกนกลางของ GNU ฉันได้ปรับปรุงคำตอบเพื่อชี้แจงนี้ (นอกจาก Open Group ls ก็ไม่ได้มี -h เช่นกัน:)
)
--block-size
คือส่วนขยาย GNU ฉันสงสัยว่า Mac OS X ไม่ได้ใช้ ls
GNU
ls -lh
ให้ขนาดไฟล์ที่มนุษย์สามารถอ่านได้รูปแบบยาว
มันใช้ k, M, G, และ T ต่อท้าย (หรือต่อท้ายไบต์ไม่ได้) ตามความจำเป็นดังนั้นจำนวนอยู่เล็ก ๆ เช่นหรือ1.4K
178M
-h
เป็นส่วนขยาย coreutils ของ GNU ไม่ใช่ POSIX พื้นฐาน
โปรดทราบว่าสิ่งนี้จะไม่ตอบคำถามตามที่ถาม หากคุณต้องการขนาดอย่างเคร่งครัดในเอ็มไอแม้สำหรับไฟล์ขนาดเล็กหรือขนาดใหญ่คำตอบที่ไมเคิลKjörlingของไม่ว่าสำหรับ ls
coreutils
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)