Câu hỏi Làm thế nào để xác định tổng kích cỡ của một thư mục (thư mục) từ dòng lệnh?


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 điều 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 hoặc
  • df -h, chỉ hiển thị không gian trống và được sử dụng trên đĩa của tôi.

685
2017-08-05 18:20


gốc


Liên quan: Làm thế nào để liệt kê kích thước tệp đệ quy của tệp và thư mục trong một thư mục? - Peter Mortensen
Sao chép trên nhiều trang: Làm thế nào để có được kích thước của một thư mục trên dòng lệnh? - Peter Mortensen


Các câu trả lời:


Lệnh du "tóm tắt mức 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 con số "con người có thể đọc được", ví dụ: được 140M thay vì 143260 (kích thước bằng KBytes)
  • -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 bằng cách sử dụng

du -sh | sort -h

Các -h gắn cờ sort sẽ xem xét các giá trị kích thước "Con người có thể đọc".


Nếu muốn tránh đệ quy liệt kê tất cả các tệp và thư mục, bạn có thể cung cấp --max-depth tham số để giới hạn số lượng mục được hiển thị. Phổ biến nhất, --max-depth=1

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

1090
2017-08-05 18:27



tôn trọng cho việc đi thêm dặm. :) - myusuf3
tôi sử dụng du -sh hoặc DOOSH như một cách để ghi nhớ nó (LƯU Ý: lệnh này giống nhau, chỉ là tổ chức các cờ dòng lệnh cho mục đích bộ nhớ) - Marco Ceppi♦
Có một lựa chọn hữu ích để du gọi là kích thước --apparent. Nó có thể được sử dụng để tìm kích thước thực của một tập tin hoặc thư mục (trái với dấu chân của nó trên đĩa), ví dụ, một tập tin văn bản chỉ với 4 ký tự sẽ chiếm khoảng 6 byte, nhưng vẫn hiển thị khi chiếm ~ 4K một đầu ra du -sh thông thường. Tuy nhiên, nếu bạn chuyển tùy chọn --apparent-size, đầu ra sẽ là 6. man du nói: - kích thước in rõ ràng kích thước, thay vì sử dụng đĩa; mặc dù kích thước rõ ràng thường nhỏ hơn, nhưng nó có thể lớn hơn do các lỗ hổng trong các tệp ('thưa thớt'), phân mảnh nội bộ, các khối gián tiếp - Hopping Bunny
Điều này làm việc cho OS X quá! Cảm ơn, tôi đã thực sự tìm kiếm một cách để xóa các tệp, cả trên máy cục bộ của tôi và máy chủ của tôi, nhưng các phương pháp tự động dường như không hoạt động. Vì vậy, tôi đã chạy du -hs * và đi vào thư mục lớn nhất và phát hiện ra tệp nào quá lớn ... Đây là một phương pháp hay và phần tốt nhất là bạn không phải cài đặt gì cả! Chắc chắn xứng đáng với ý kiến ​​của tôi - Dev
@BandaMuhammadAlHelal Tôi nghĩ có hai lý do: làm tròn (du có phần làm tròn đặc biệt, không hiển thị số thập phân nếu giá trị có nhiều hơn một chữ số trong đơn vị đã chọn) và cổ điển Tiền tố 1024 so với 1000 vấn đề. du có một lựa chọn -B (hoặc là --block-size) để thay đổi các đơn vị hiển thị giá trị hoặc bạn có thể sử dụng -b thay vì -h để có được giá trị "thô" theo byte. - Marcel Stimberg


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 ncurses, nhanh chóng cung cấp cho bạ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.

  • nhanh chóng phân tích thông qua phân cấp tệp
  • bạn có thể xóa ví dụ: các tệp tạm thời khổng lồ từ bên trong công cụ
  • cực nhanh

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

apt-get install ncdu

140
2017-10-11 07:24



Điều này thật tuyệt vời! Giống như DaisyDisk, cho OSX - subZero
Công cụ đáng kinh ngạc! - Ted
ncdu nó thật tuyệt! Sau khi cài đặt nó, chỉ cần làm điều này ncdu /. Bạn sẽ nhanh chóng tìm thấy các tập tin lớn nhất trên hệ thống. Đồng thời nhấn h trong khi bên trong giao diện điều khiển của ncdu. Nó có các phím tắt rất hữu ích - vlad-ardelean
Công cụ tuyệt vời! Cảm ơn cho những người đứng đầu lên! - kstratis
Công cụ thực sự tuyệt vời và hữu ích. Cảm ơn người đàn ông :) - Frank


Điều này tìm thấy 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ả trong định dạng của con người

du -hsc *

43
2017-12-19 16:32





Thưởng thức!

du foldername

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


14
2017-08-05 18:22





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à nhập như sau:

tree --du -h /path/to/directory
...
...

33.7M used in 0 directories, 25 files

Từ người đàn ông cây:

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

7
2018-01-27 12:37





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

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

Đầu ra

 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

5
2017-10-06 14:05





Câu trả lời đã làm cho nó rõ ràng 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:

  • Thỉnh thoảng, du đầu ra có thể gây hiểu lầm bởi 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 cỡ của các tệp riêng lẻ. Thông thường hệ thống tập tin sẽ phân bổ 4096 byte cho một tập tin ngay cả khi bạn đã lưu trữ chỉ một ký tự trong đó!

  • Sự khác biệt đầu ra do sức mạnh của 2 và sức mạnh của 10 đơn vị. Các -h chuyển sang du chia số byte cho 2 ^ 10 (1024), 2 ^ 20 (1048576) vv để cho đầu ra có thể đọc được. Nhiều người có thể quen với việc thấy sức mạnh của 10 (ví dụ: 1K = 1000, 1M = 1000000) và bị bất ngờ bở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, theo byte, hãy làm:

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

3
2018-02-04 18:56



Tìm-ls-awk sẽ trả về một giá trị sai cho các thư mục lớn # 1. Để có phiên bản mới hơn, bạn có thể thêm --bignum hoặc là -M ; nếu đó không phải là một lựa chọn sử dụng find . -ls | tr -s ' '|cut -d' ' -f 7| paste -sd+ |bc  # 2. - goozez
Nếu quyền hạn của 2 được sử dụng là một vấn đề, có --si tùy chọn: "như -h, nhưng sử dụng quyền hạn 1000 không phải 1024" - muru


Chỉ với kích thước thư mục ở định dạng có thể đọc được, hãy sử dụng bên dưới:

du -hs directoryname

Điều này có thể không nằm trong phần chính xác, nhưng từ dòng lệnh, bạn có thể thử:

ls -sh filename

Các -slà kích thước và -h là con người có thể đọc được.

Sử dụng -l để hiển thị trên ls danh sách, như dưới đây:

ls -shl

1
2018-05-12 09:09





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

man du

Bạn nên đọc trang người đàn ông (có sẵn Trực tuyến) trước khi bạn sử dụng lệnh.


0
2017-12-05 09:17





Đây là tập lệnh POSIX sẽ hoạt động với:

  • Một tập tin
  • Các tập tin
  • Một thư mục
  • Thư mục
#!/bin/sh
ls -ARgo "$@" | awk '{q += $3} END {print q}'

Nguồn


0
2018-03-27 11:48





Điều tốt nhất tôi nghĩ là:

du -h directory_name | tail -n1

Điều này sẽ chỉ cho bạn thấy kích thước của thư mục mà bạn quan tâm và sẽ không in kích cỡ của bất kỳ thư mục và tệp nào bên trong thư mục đó.

Tôi nên thêm rằng nếu kích thước của thư mục lớn thì du mất nhiều thời gian hơn. Bạn phải kiên nhẫn để lệnh này hoạt động. Cũng giống như bất kỳ lệnh unix nào khác, bạn có thể tìm ra tổng thời gian cho quá trình này bằng cách sử dụng time trước lệnh này:

time du -h directory_name | tail -n1

-2
2017-12-19 06:35



du có một tùy chọn cho điều này: -s - muru