Làm thế nào để biết kích thước của một thư mục? Bao gồm các thư mục con và tập tin.
Làm thế nào để biết kích thước của một thư mục? Bao gồm các thư mục con và tập tin.
Câu trả lời:
du -s directory_name
Hoặc để có được đầu ra có thể đọc được của con người:
du -sh directory_name
Các -s
tùy chọn có nghĩa là nó sẽ không liệt kê kích thước cho mỗi thư mục con, chỉ có tổng kích thước.
du -sh bag
hoạt động hoàn hảo!
Mặc dù sử dụng một gói riêng như ncdu có thể hoạt động tốt, nhưng việc so sánh nhiều thư mục có thể được thực hiện ở một mức độ nào đó bằng cách chỉ đưa ra một danh sách các thư mục để tăng kích thước. Ví dụ: để so sánh các thư mục cấp cao nhất trên hệ thống của bạn ...
cd /
sudo du -sh ./*
du -sh /*
du -csh
-c sản xuất tổng cộng
-c
không có ý nghĩa để sử dụng cùng với -s
, phải không? -s
chỉ hiển thị kích thước của thư mục được chỉ định, đó là tổng kích thước của thư mục.
Thử
du -hax --max-depth=1 / | grep '[0-9]G' | sort -nr
Điều này giúp tìm các thư mục lớn để sau đó chọn lọc thông qua du -sh ./*
bạn cũng có thể sử dụng ls -ldh:
ls -ldh /etc
drwxr-xr-x 145 root root 12K 2012-06-02 11:44 /etc
-l là cho danh sách dài; -d là để hiển thị thông tin thư mục, không phải nội dung của thư mục, -h là để hiển thị kích thước ở định dạng huma có thể đọc được.
Tôi luôn cài đặt gói "ncdu" và xem tất cả đầu ra của tất cả các thư mục có biểu diễn đồ họa. Điều này là do tôi thường cần biết những gì chiếm nhiều dung lượng đĩa nhất trên máy của tôi, bất kể một thư mục tổng hợp bao nhiêu.
Cách sử dụng: sudo ncdu /
(Bạn không cần sudo
cho các thư mục mà bạn có quyền đọc).
Sẽ mất một lúc để quét số liệu thống kê sử dụng đĩa trên toàn bộ hệ thống tệp. Nó có một biểu diễn đồ họa dòng lệnh đẹp và bao gồm điều hướng bàn phím bằng các phím mũi tên, như đi sâu hơn hoặc cao hơn trong đường dẫn được quét. Bạn cũng có thể xóa các mục bằng cách nhấn D.
du -hd1
sẽ liệt kê ở định dạng có thể đọc được kích thước của tất cả các thư mục, ví dụ:
656K ./rubberband
2.2M ./lame
652K ./pkg-config
Tôi đã thử với lệnh dưới đây vì câu trả lời tốt nhất đã được cung cấp
sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'
đầu ra
sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'
679445
du
, đơn vị mặc định là các khối 512 byte theo POSIX và kilobyte trên Linux (trừ khi biến môi trườngPOSIXLY_CORRECT
được đặt) hoặc vớidu -k
.