it-swarm-vi.com

Làm cách nào để xác định tổng kích thướ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 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ông
  • df -h, chỉ hiển thị không gian trống và đã sử dụng trên các đĩa của tôi.
755
David Barry

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
1211
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, 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.

  • truy vấn nhanh thông qua hệ thống phân cấp tập tin
  • bạn có thể xóa ví dụ: tập tin 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
158
geekQ

Đ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 *
51
Brad

Thưởng thức!

du foldername

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

16
myusuf3

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.)
11
αғsнιη

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

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

Để 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
1
Shiv Singh

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.

0
Balaswamy vaddeman

Đâ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 "[email protected]" | awk '{q += $3} END {print q}'

Nguồn

0
Steven Penny

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.

0
kmario23