Tôi làm thế nào để xác định được tổng kích thước của một mục (mục), từ các dòng lệnh?

Có một mệnh lệnh đơn giản để hiển thị các tổng tổng kích thước (sử dụng đĩa) của tất cả các tập tin trong một mục (mục)?

Tôi đã cố gắng này, và họ không làm những gì tôi muốn:

  • ls -l đó chỉ hiển thị các kích thước của các tập tin cá nhân trong một mục, cũng không
  • df -h đó chỉ là màn miễn phí và sử dụng không gian trên ổ đĩa của tôi.

Lệnh du "tóm tắt sử dụng đĩa của mỗi TẬP tin đệ quy cho các thư mục," ví dụ:,

du -hs /path/to/directory
  • -h là để có được các con số "con người có thể đọc được", ví dụ như được 140M thay vì 143260 (kích thước trong KBytes)
  • -s được cho bản tóm tắt (nếu không, bạn sẽ nhận được không chỉ là kích thước của các thư mục, mà còn cho tất cả mọi thứ trong các thư mục riêng)

Như bạn đang sử dụng -h bạn có thể sắp xếp những con người có thể đọc được sử dụng giá trị

du -h | sort -h

Những -h lá cờ trên sort sẽ xem xét "con Người có thể Đọc được" kích thước giá trị.


Nếu muốn tránh đệ quy danh sách tất cả các tập tin và các thư mục, bạn có thể cung cấp những --max-depth tham số để hạn chế bao nhiêu mục đang hiển thị. Thường, --max-depth=1

du -h --max-depth=1 /path/to/directory

Gần đây tôi tìm thấy một người tuyệt vời, đây dựa trên công cụ tương tác, đó nhanh chóng cung cấp cho bạn một cái nhìn về mục kích cỡ. Đã tìm kiếm cho rằng loại công cụ trong nhiều năm.

  • nhanh chóng xuống qua file hệ thống cấp bậc
  • bạn có thể xóa ví dụ lớn tạm thời các tập tin từ bên trong các công cụ
  • rất nhanh

Hãy nghĩ về nó như phi cho các dòng lệnh:

apt-get install ncdu

Này, tìm thấy kích thước đệ quy và đặt nó cạnh mỗi tên thư mục, cùng với tổng kích thước xuống phía dưới, tất cả trong những dạng con người

du -hsc *

Thưởng thức!

du foldername

Thêm thông tin về lệnh đó ở đây

Dưới đây là những gì tôi đang sử dụng để in total, thư mục, và kích thước tập tin:

$ du -sch /home/vivek/* | sort -rh

Chi tiết

 ------------------------------------------------------------   -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

Ra

 70M    total 69M    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/lib992K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/results292K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/target 52K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/user-files

tree là một lệnh hữu ích cho công việc này:

Chỉ cần đặt nó qua sudo apt-get install tree và loại 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.)

Những câu trả lời đã được thực hiện nó rõ ràng quá mà du là công cụ để tìm tổng kích thước của một mục. Tuy nhiên, có một vài yếu tố để xem xét:

  • Thỉnh thoảng, du ra có thể được sai lầm bởi vì nó báo cáo không được giao bởi các tập tin, mà có thể là khác nhau từ những tổng các kích thước của các tập tin cá nhân. Thường là các hệ thống sẽ phân bổ 4096 nội cho một tập tin thậm chí nếu bạn lưu trữ chỉ một trong những nhân vật trong đó!

  • Ra sự khác biệt do sức mạnh của 2 và sức mạnh của đơn vị 10. Những -h chuyển sang du chia số nhớ của bởi 2^10 (1024), 2^20 (1048576) ... để cho một người có thể đọc được ra. Nhiều người có thể được thêm tập cho quen với việc nhìn thấy quyền lực của 10 (ví dụ như 1 K = 1000, 1 M = 1000000) và là ngạc nhiên khi kết quả.

Để tìm thấy tổng số kích thước của tất cả các tập tin trong một mục, trong nội, đừng:

find <dir> -ls | awk '{sum += $7} END {print sum}'

Ví dụ:

$ du -s -B 1255729664$ find .  -ls | awk '{sum += $7} END {print sum}'249008169

Bạn có thể sử dụng cụ Bụi:

PS C:\git> dust   0B       ┌── templates           │                                      █ │   0%   0B     ┌─┴ git-core              │                                      █ │   0%   0B   ┌─┴ share                   │                                      █ │   0%  76B   ├── readme.md               │                                      █ │   0% 156K   │   ┌── less.exe            │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█ │   2% 2.7M   │   ├── git-remote-https.exe│▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█████████████████ │  42% 3.6M   │   ├── git.exe             │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██████████████████████ │  56% 6.5M   │ ┌─┴ git-core              │███████████████████████████████████████ │ 100% 6.5M   ├─┴ libexec                 │███████████████████████████████████████ │ 100% 6.5M ┌─┴ .                         │███████████████████████████████████████ │ 100%

Ví dụ của tôi là từ cửa Sổ, nhưng nề và Táo cũng được hỗ trợ:

https://github.com/bootandy/dust

Tôi đang điều kiện để những ll lệnh đó là bí danh đến ls -alF. Nó chỉ thiếu một số lượng tập tin và kích thước của các tập tin ở phía dưới. Tôi chơi với dutree nhưng không thể có được tổng số tôi cần. Vì vậy, tôi tạo ra lll để làm điều đó cho tôi.

Bạn ~/.bashrc ra sau:

lll () {    ls -alF "$@"    arr=($(ls -alF "$@" | awk '{TOTAL+=$5} END {print NR, TOTAL}'))    printf " \33[1;31m ${arr[0]}\33[m line(s).  "    printf "Total size: \33[1;31m ${arr[1]}\33[m\n"#    printf "Total size: \33[1;31m $(BytesToHuman <<< ${arr[1]})\33[m\n"}

Lưu các tập tin và tài nguyên, nó sử dụng . ~/.bashrc (hoặc anh có thể khởi động thiết bị đầu cuối của).


Mẫu ra

Những điều tốt đẹp về ll đầu ra là nó màu sắc. Này được duy trì với lll nhưng mất khi sử dụng find hay du:

lll sample output.png


TL;DR

Một phần thưởng chức năng bạn có thể thêm vào ~/.bashrc được gọi là BytesToHuman(). Điều này không có gì nhiều điều khiển người sẽ đợi chuyển số lượng lớn để theo dõi GiB etc:

function BytesToHuman() {    # https://unix.stackexchange.com/questions/44040/a-standard-tool-to-convert-a-byte-count-into-human-kib-mib-etc-like-du-ls1/259254#259254    read StdIn    b=${StdIn:-0}; d=''; s=0; S=(Bytes {K,M,G,T,E,P,Y,Z}iB)    while ((b > 1024)); do        d="$(printf ".%02d" $((b % 1024 * 100 / 1024)))"        b=$((b / 1024))        let s++    done    echo "$b$d ${S[$s]}"} # BytesToHuman ()

Tiếp theo lật bình luận giữa hai dòng trong lll () chức năng nhìn như thế này:

#    printf "Total size: \33[1;31m ${arr[1]}\33[m\n"    printf "Total size: \33[1;31m $(BytesToHuman <<< ${arr[1]})\33[m\n"

Bây giờ, ra vẻ như thế này:

lll sample output 2.png

Như luôn luôn đừng quên để lại nguồn với . ~/.bashrc bất cứ khi nào làm thay đổi. (Hoặc khởi động thiết bị đầu cuối tất nhiên)

PS - trong Hai tuần tự cách ly cuối cùng đã cho tôi thời gian để làm việc trên này năm năm tuổi mục tiêu.

du /foldername là lệnh chuẩn biết kích thước của một mục. Đó là cách tốt nhất để tìm các tùy chọn bằng cách đọc trang người đàn ông:

man du

Anh nên đọc trang người đàn ông (sẵn trực tuyến) trước khi sử dụng các chỉ huy.

Người nhắc nhở rằng nó có thể làm cho gần như không có cảm giác về con Bò hệ thống như hiển thị bản ghi thay.