2013-04-16 36 views
12

Khi tôi cố gắng tính toán kích thước của tệp và thư mục bên trong thư mục, sẽ mất nhiều thời gian hơn. Lệnh tôi đã sử dụng là du -ch --max-depth=1.du -h - max-depth = 1 mất nhiều thời gian

Có cách nào khác để tính tổng kích thước tệp và thư mục không?

Cảm ơn

Trả lời

15

Lệnh du lấy việc sử dụng đĩa của tất cả các file trong thư mục và tất cả các thư mục con (đệ quy) theo mặc định. Vì vậy, thời gian dành cho du liên quan đến số lượng tệp được phân tích. Các tùy chọn -s hoặc --summarize--max-depth chỉ ảnh hưởng đến đầu ra của lệnh (và không phải bản thân quá trình quét).

Một số tùy chọn du giới hạn quá trình quét tệp là --one-file-system, --exclude và --exclude-from.

Nếu bạn không muốn sử dụng lại các thư mục con, bạn có thể sử dụng tìm kiếm thay thế, điều này cho phép bạn kiểm soát nhiều hơn đối với các tệp cần phân tích. Nhưng nó không thể tổng hợp việc sử dụng đĩa một cách đệ quy.

find /path/to/dir -maxdepth 1 -printf "%k\t%p\n" 

Thông báo, rằng %k luôn trở việc sử dụng đĩa trong khối 1k và sử dụng đĩa báo cáo các tập tin thưa thớt có thể ít hoặc hơi lớn thì kích thước tập tin được trả về bởi %s của lệnh ls. Do đó '% k' hoạt động như lệnh du cho các tệp đơn lẻ.

Nếu bạn muốn kết hợp các tính năng của finddu, bạn có thể kết hợp cả hai tính năng này với nhau.

find . -maxdepth 1 -name "xyz*" -print0 | du --files0-from=- 
Các vấn đề liên quan