tra-loi-cau-hoi-phat-trien-web.com

Làm cách nào để tạo `ls` hiển thị kích thước tệp tính bằng megabyte?

Tôi cần những lệnh nào cho Linux ls để hiển thị kích thước tệp theo MB?

524
Paul Sheldrake

ls -l --block-size=M sẽ cung cấp cho bạn một danh sách định dạng dài (cần thiết để thực sự thấy kích thước tệp) và làm tròn kích thước tệp lên cho MiB gần nhất.

Nếu bạn muốn đơn vị MB (10 ^ 6 byte) thay vì đơn vị MiB (2 ^ 20 byte), hãy sử dụng --block-size=MB thay thế.

Nếu bạn không muốn hậu tố M được gắn vào kích thước tệp, bạn có thể sử dụng cái gì đó như --block-size=1M. Cảm ơn Stéphane Chazelas vì đã gợi ý điều này.

Nếu bạn chỉ đơn giản muốn kích thước tệp theo đơn vị "hợp lý", thay vì cụ thể là megabyte, thì bạn có thể sử dụng -lh để có được một danh sách định dạng dài và trình bày kích thước tệp có thể đọc được của con người. Điều này sẽ sử dụng các đơn vị kích thước tệp để giữ kích thước tệp được hiển thị với khoảng 1-3 chữ số (vì vậy bạn sẽ thấy kích thước tệp như 6.1K, 151K, 7.1M, 15M, 1.5G và như thế.

Các --block-size tham số được mô tả trong trang man cho ls; man ls và tìm kiếm SIZE. Nó cũng cho phép các đơn vị khác ngoài MB/MiB và từ ngoại hình của nó (tôi cũng không thử điều đó) kích thước khối tùy ý (vì vậy bạn có thể xem kích thước tệp là một số khối 429 byte nếu bạn muốn đến).

Lưu ý rằng cả hai --block-size-h are GNU tiện ích mở rộng trên đầu ls , do đó, điều này có thể không hoạt động nếu bạn không có GNU userland (mà hầu hết các cài đặt Linux làm). ls from GNU Coreutils 8.5 không hỗ trợ - kích thước -block và -h như mô tả ở trên. Cảm ơn đến kojiro để chỉ ra điều này.

598
a CVn

ls -lh cung cấp kích thước tệp có thể đọc được của con người, định dạng dài.

Nó sử dụng hậu tố k, M, G và T (hoặc không có hậu tố cho byte) khi cần thiết để số lượng vẫn nhỏ, ví dụ: 1.4K hoặc là 178M.

-h là một GNU phần mở rộng coreutils, không phải POSIX cơ sở.

Lưu ý rằng điều này không trả lời chính xác câu hỏi như đã hỏi. Nếu bạn muốn kích thước nghiêm ngặt trong MiB ngay cả đối với các tệp nhỏ hoặc khổng lồ, Câu trả lời của Michael Kjorling thực hiện điều đó cho GNU coreutils ls .

445
Sirex

ls -lhS sắp xếp theo kích thước, ở định dạng có thể đọc được của con người

56
jaciefan

Và đây là tùy chọn để liệt kê mọi thứ theo thứ tự thư mục theo kích thước tệp (vẫn có thể đọc được của con người) tăng dần.

ls -lSrh
15
Marcos Placona