Có một lệnh đơn giản để hiển thị tổng kích thước tổng hợp (sử dụng đĩa) của tất cả các tệp trong một thư mục (thư mục) không?
Tôi đã thử những thứ này và họ không làm những gì tôi muốn:
ls -l
, chỉ hiển thị kích thước của các tệp riêng lẻ trong một thư mục, cũng khôngdf -h
, chỉ hiển thị không gian trống và đã sử dụng trên các đĩa của tôi.Lệnh du
"tóm tắt việc sử dụng đĩa của từng TẬP_TIN, theo cách đệ quy cho các thư mục", ví dụ:
du -hs /path/to/directory
-h
là lấy số "người có thể đọc được", ví dụ: nhận 140M
thay vì 143260
(kích thước tính bằng KB)-s
là tóm tắt (nếu không, bạn sẽ nhận được không chỉ kích thước của thư mục mà còn cho tất cả mọi thứ trong thư mục riêng)Khi bạn đang sử dụng -h
, bạn có thể sắp xếp các giá trị có thể đọc được của con người bằng cách sử dụng
du -h | sort -h
Cờ -h
trên sort
sẽ xem xét các giá trị kích thước "Con người có thể đọc được".
Nếu muốn tránh liệt kê đệ quy tất cả các tệp và thư mục, bạn có thể cung cấp tham số --max-depth
để giới hạn số lượng mục được hiển thị. Thông thường nhất, --max-depth=1
du -h --max-depth=1 /path/to/directory
Gần đây tôi đã tìm thấy một công cụ tương tác tuyệt vời, dựa trên, nhanh chóng cung cấp cho bạn một cái nhìn tổng quan về kích thước thư mục. Tìm kiếm loại công cụ đó trong nhiều năm.
Hãy nghĩ về nó như baobab cho dòng lệnh:
apt-get install ncdu
Điều này tìm kích thước đệ quy và đặt nó bên cạnh mỗi tên thư mục, cùng với tổng kích thước ở dưới cùng, tất cả ở định dạng con người
du -hsc *
tree
là một lệnh hữu ích khác cho công việc này:
Chỉ cần cài đặt nó qua Sudo apt-get install tree
và gõ như sau:
tree --du -h /path/to/directory
...
...
33.7M used in 0 directories, 25 files
Từ cây đàn ông :
-h Print the size of each file but in a more human readable way, e.g. appending a size letter for kilo‐
bytes (K), megabytes (M), gigabytes (G), terabytes (T), petabytes (P) and exabytes (E).
--du For each directory report its size as the accumulation of sizes of all its files and sub-directories
(and their files, and so on). The total amount of used space is also given in the final report (like
the 'du -c' command.)
Dưới đây là những gì tôi đang sử dụng để in tổng số, thư mục và kích thước tệp:
$ du -sch /home/vivek/* | sort -rh
------------------------------------------------------------
-c, --total
produce a grand total
-h, --human-readable
print sizes in human readable format (e.g., 1K 234M 2G)
-s, --summarize
display only a total for each argument
-------------------------------------------------------------
-h, --human-numeric-sort
compare human readable numbers (e.g., 2K 1G)
-r, --reverse
reverse the result of comparisons
70M total
69M /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/lib
992K /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/results
292K /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/target
52K /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/user-files
Các câu trả lời đã làm rõ rằng du
là công cụ tìm tổng kích thước của một thư mục. Tuy nhiên, có một vài yếu tố cần xem xét:
Đôi khi, đầu ra du
có thể gây hiểu nhầm vì nó báo cáo không gian được phân bổ bởi hệ thống tệp, có thể khác với tổng kích thước của các tệp riêng lẻ. Thông thường, hệ thống tệp sẽ phân bổ 4096 byte cho một tệp ngay cả khi bạn chỉ lưu trữ một ký tự trong đó!
Chênh lệch đầu ra do công suất 2 và công suất 10 đơn vị. -h
chuyển sang du
chia số byte cho 2 ^ 10 (1024), 2 ^ 20 (1048576), v.v. để cung cấp đầu ra có thể đọc được. Nhiều người có thể quen với việc nhìn thấy sức mạnh của 10 (ví dụ: 1K = 1000, 1M = 1000000) và ngạc nhiên với kết quả.
Để tìm tổng số kích thước của tất cả các tệp trong một thư mục, tính bằng byte, hãy:
find <dir> -ls | awk '{sum += $7} END {print sum}'
Thí dụ:
$ du -s -B 1
255729664
$ find . -ls | awk '{sum += $7} END {print sum}'
249008169
Để chỉ kích thước thư mục ở định dạng có thể đọc được, hãy sử dụng như sau:
du -hs directoryname
Điều này có thể không có trong phần chính xác, nhưng từ dòng lệnh, bạn có thể thử:
ls -sh filename
-s
có kích thước và -h
có thể đọc được.
Sử dụng -l
để hiển thị trên danh sách ls
, như bên dưới:
ls -shl
du /foldername
là lệnh tiêu chuẩn để biết kích thước của thư mục. Cách tốt nhất là tìm các tùy chọn bằng cách đọc trang man:
man du
Bạn nên đọc trang man (có sẵn trực tuyến ) trước khi bạn sử dụng lệnh.
Đây là tập lệnh POSIX sẽ hoạt động với:
#!/bin/sh
ls -ARgo "[email protected]" | awk '{q += $3} END {print q}'
Nếu thư mục mong muốn của bạn có nhiều thư mục con thì hãy sử dụng như sau:
$ cd ~/your/target/directory
$ du -csh
-c, --tổng sản xuất tổng cộng
[.__.] - s, --summarize chỉ hiển thị tổng cộng cho mỗi đối số
[.___
mà sau đó sẽ tạo ra tổng số sử dụng bộ nhớ cho tất cả các tệp/thư mục trong thư mục hiện tại.