Câu hỏi ls-command: làm thế nào để hiển thị kích thước tập tin theo megabyte?


Trong Unix (Tru64), làm cách nào để lệnh ls hiển thị kích thước tệp theo megabyte? Hiện tại, tôi có thể hiển thị nó theo byte bằng cách sử dụng như sau:

ls -la


148
2017-09-20 11:20


gốc




Các câu trả lời:


Có lẽ -h là đủ cho bạn:

-h
  Khi được sử dụng với tùy chọn -l, sử dụng hậu tố đơn vị: Byte, Kilobyte,               Megabyte, Gigabyte, Terabyte và Petabyte để giảm               số chữ số đến ba hoặc ít hơn bằng cách sử dụng cơ số 2 cho các kích thước.

ls -lah

Lời khuyên chung: Sử dụng man commandname để đọc hướng dẫn / trợ giúp của một lệnh nhất định, ví dụ: đây man ls.


226
2017-09-20 11:22



Cảm ơn, nhưng -h tùy chọn dường như không tồn tại trên Tru64 Unix.
Lời khuyên chung: cài đặt tiện ích GNU ... - reinierpost
Tôi thích mẹo của bạn về cách sử dụng con người, nhưng thực sự, tìm kiếm trên Google nhanh hơn rất nhiều so với việc sử dụng con người rất nhiều thời gian (như bây giờ, khi tôi tìm thấy kết quả này trên Google). - trusktr
Những điều tốt đẹp của Google và tất cả các gợi ý chung, nhưng cuối cùng trang con người là hệ thống / hệ điều hành, thậm chí lưu trữ cụ thể, thường được tạo khi phần mềm được biên dịch hoặc cài đặt, và do đó, có thẩm quyền cho phần mềm trên hệ thống cụ thể của bạn. - Nevin Williams
Chỉ cần đến vòng tròn đầy đủ, có người trực tuyến cho gnu / linux: linux.die.net/man - MariusMatutiae


ls --block-size=M in các kích thước bằng MB nhưng hiển thị 1MB cũng cho bất kỳ thứ gì dưới 1 MB. Tôi không chắc chắn nếu tùy chọn này là chấp nhận được trong phiên bản UNIX của bạn ls, mặc dù.

Thực ra ls -lh cũng in kích thước trong Gigabyte nếu tệp đủ lớn (Vâng anyways: on Linux 64 bit này hoạt động:>)

Trên một nút bên: du -sh * in cũng kích thước thư mục trong thư mục hiện tại.


32
2017-09-20 12:33



Cảm ơn! Tôi cần theo dõi các thay đổi tệp trực tiếp trong một thư mục và sử dụng ls -h là vô nghĩa sau khi một tệp lớn hơn 1GB, vì vậy tôi sử dụng lệnh này trong vòng lặp 1 giây: while true ; do ls -al --block-size=M ; sleep 1 ; done - ccpizza


thử ls -shR cho định dạng có thể đọc được của con người đệ quy.


14
2017-10-14 08:27



OP đã tuyên bố rằng không có -h trên Tru64và đã làm như vậy hơn hai năm trước khi câu trả lời này được đăng. - Michael Kjörling
Suy nghĩ Đó là trách nhiệm của tôi để giúp những người đạt được ở đây với cùng một tìm kiếm google. - Sorter


Bạn sẽ phải sử dụng awk để làm toán cho bạn:

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

Điều này sẽ không ảnh hưởng đến đầu ra cho các tệp nhỏ hơn mega.

Bạn có thể cần điều chỉnh số trường để khớp với cách ls được đặt ra. Bạn có thể thay đổi mega đến "1000000" nếu đó là sở thích của bạn.

Điều này sẽ in nhiều chữ số thập phân hơn bạn có thể muốn. Bạn có thể thực hiện một chức năng làm tròn.


14
2017-09-20 13:36



Kém thanh lịch hơn ls -lh hoặc là ls --block-size=M, nhưng AWK rất hữu ích! - Statwonk
Đúng thứ tôi cần. Tất cả các giải pháp khác vòng quanh MB gần nhất nhưng điều này cho thấy một vài chữ số thập phân và dễ dàng tùy chỉnh. - zeroimpl
Đây là một giải pháp tốt cho các hệ thống đó (AIX - Tôi đang nhìn bạn) mà không có tùy chọn -h. - Buggabill


thử ls -lash, nó in kích thước ở định dạng có thể đọc được của con người


6
2017-09-20 11:23





du -sm filename.txt


5
2017-09-20 16:36



nó luôn luôn làm tròn kích thước ... nếu kích thước nhỏ hơn 1 MB nói 500K, thì nó cũng sẽ in 1 triệu - AnonGeek


Bạn cũng có thể nhập

du -sh ./*

Điều này sẽ liệt kê tất cả các thư mục trong thư mục hiện tại, với định dạng con người có thể đọc được, bao gồm các kích thước tệp quen thuộc hơn trong Kb, Mb, Gb.


5
2018-04-19 22:57