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, hãy sử dụng các hậu tố đơn vị: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte và Petabyte để giảm số lượng chữ số xuống còn ba hoặc ít hơn bằng cách sử dụng cơ sở 2 cho 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
.
ls --block-size=M
in các kích thước tính bằng Megabyte nhưng cũng hiển thị 1 MB cho mọi thứ dưới 1 MB. Tuy nhiên, tôi không chắc tùy chọn này có được chấp nhận trong phiên bản UNIX của ls không.
Trên thực tế ls -lh
cũng in các kích thước tính bằng Gigabyte nếu tệp đủ lớn (Dù sao đi nữa: trên Linux 64 bit, điều này không 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.
ls -h
là vô nghĩa sau khi tệp tăng hơn 1GB, vì vậy tôi sử dụng lệnh này trong vòng 1 giây:while true ; do ls -al --block-size=M ; sleep 1 ; done
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 bạn ls
trình bày. Bạn có thể thay đổi mega
thành "1000000" nếu đó là sở thích của bạn.
Điều này sẽ in nhiều vị trí 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.
ls -lh
hoặc ls --block-size=M
, nhưng AWK rất hữu ích!
cố gắng ls -shR
cho định dạng đệ quy con người có thể đọc được.
-h
trên Tru64 , và đã làm như vậy hơn hai năm trước khi câu trả lời này được đăng.
Nếu bạn chỉ muốn kích thước của một tệp cụ thể, thì lệnh, phép ngoại suy tầm thường của các câu trả lời trước đó là:
Tên tệp ls -sh
-s
dành cho kích thước và h
dành cho con người có thể đọc được (như đã đề cập ở trên một vài lần).
Đầu ra sẽ như thế này:
753M myfilename
Nếu bạn bỏ (các) tên tệp, nó sẽ liệt kê thư mục, đặt kích thước của mỗi tệp bên cạnh tên của nó - không giống như những gì ls -la
khi được gọi mà không có đối số tên tệp.
Hi vọng điêu nay co ich.
-h
tùy chọn này không tồn tại ls
trên hệ thống đó.
ls -l --block-size=MB
Đối với --block-size
tham số:
MB
trong 10 ^ 6M
cho 2 ^ 201MB
. Vì lý do này, tôi thấy ls -l --block-size=kB
là hữu ích hơn.
Nếu bạn chỉ quan tâm đến kích thước tệp và bạn không phải sử dụng ls
lệnh, hãy thử cách sau:
# echo "Hello World" > file.txt
# ls -l file.txt
-rw-r--r-- 1 user user 12 Mar 10 11:32 file.txt
# stat --printf='%s\n' file.txt
12
Điều này sẽ in kích thước tập tin mà không cần phải phân tích bất cứ điều gì.