Tôi cần những lệnh nào để Linux lshiển thị kích thước tệp bằng MB?
Tôi cần những lệnh nào để Linux lshiển thị kích thước tệp bằng MB?
Câu trả lời:
ls -l --block-size=Msẽ 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à kích thước tệp tròn lên tới 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=MBthay thế.
Nếu bạn không muốn Mhậu tố gắn liền với kích thước tệp, bạn có thể sử dụng một cái gì đó như --block-size=1M. Cảm ơn Stéphane Chazelas đã 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 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 tin để giữ kích thước file được trình bày với khoảng 1-3 chữ số (do đó bạn sẽ thấy kích thước file như 6.1K, 151K, 7.1M, 15M, 1.5Gvà vân vân.
Các --block-sizetham số được mô tả trong man page của ls; man lsvà 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ử) 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-sizevà -hđều là các phần mở rộng GNU trên đầu của Open Groupls , vì vậy điều này có thể không hoạt động nếu bạn không có vùng người dùng GNU (điều mà hầu hết các cài đặt Linux làm). Các lstừ GNU coreutils 8,5 không hỗ trợ --block kích thước và -h như đã mô tả ở trên. Cảm ơn kojiro đã chỉ ra điều này.
ls? Tiêu chuẩnls không có lập luận như vậy. Với phần mở rộng xsi ls có -scờ, làm cho nó báo cáo số lượng khối, nhưng không có cờ tiêu chuẩn --block-size.
--block-sizenhư coreutils 8.5, đây là những gì được cài đặt trên hệ thống Bóp Debian của tôi. Vì câu hỏi rõ ràng dành cho Linux và không chỉ định bất cứ điều gì khác, tôi thừa nhận tôi đã giả sử một vùng người dùng tập trung xung quanh lõi GNU. Tôi đã cập nhật câu trả lời để làm rõ điều này. (Bên cạnh đó, Open Group ls dường như cũng không có -h. :))
--block-sizelà phần mở rộng GNU. Tôi nghi ngờ rằng Mac OS X không sử dụng GNU ls.
ls -lh cung cấp cho con người kích thước tập tin dễ đọc, đị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.4Khoặc 178M.
-h là một phần mở rộng lõi của GNU, không phải là POSIX cơ bản.
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 đó đối với lõi GNUls .
hdễ viết hơn nhiều so với--block-size=M
ls -ltất cả nếu không phải con người? : p
ls -lđầu ra là cách làm sai, 99% thời gian. unix.stackexchange.com/questions/128985/why-not-parse-ls . Đó là 1% rất hào phóng và bị giới hạn khá nhiều đối với một lớp mà bạn viết tương tác để sử dụng một lần, không phải là tập lệnh bạn sẽ sử dụng nhiều lần trên tên tệp không xác định.
ls -lhS sắp xếp theo kích thước, ở định dạng có thể đọc được
ls -lhcâu trả lời vì lý do tại sao điều này không thực sự trả lời câu hỏi.
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
--block-size=Mlàm cho mộtMhậu tố được hiển thị bên cạnh kích thước và bạn có thể sử dụng--block-size=1Mđể bỏ qua nó. Điều đáng nói là bạn cũng cần GNU ls cho điều đó (hầu hết các hệ thống Linux không nhúng sẽ có GNU ls).