Hệ thống tập tin đầy đủ: làm thế nào để tìm các thư mục lớn nhất hoặc tập tin lớn nhất? [bản sao]


32

Câu hỏi này đã có câu trả lời ở đây:

Trong Linux, tôi đang tìm kiếm một lệnh để liệt kê tệp lớn nhất và / hoặc các thư mục lớn nhất trong một thư mục.


Công cụ hữu ích nhất mà tôi tìm thấy là xdiskusage ( xdiskusage.sourceforge.net ) Điều này hiển thị bằng đồ họa nơi các tệp - theo kích thước. Công cụ tuyệt vời! (và nó hoạt động trực tiếp với X11)
jcoppens

Làm thế nào điều này được nhân đôi của một số câu hỏi đã được đóng lại ngoài chủ đề? Không có ý nghĩa.
kenorb

Câu trả lời:


17

Từ bất kỳ thư mục:

du -a | sort -n -r


Điều này cho thấy các tệp riêng lẻ, nhưng câu hỏi là về các thư mục là tốt
knocte

du không có đối số tóm tắt việc sử dụng đĩa theo thư mục. du với -a tạo ra cùng một thông tin thư mục và bao gồm cả việc sử dụng đĩa cho các tệp riêng lẻ.
Brent Worden

không thể chạy sắp xếp khi bạn hết dung lượng: = (
Jonathan Henson

28

Lệnh sau cho bạn thấy một cấp độ của các thư mục và kích thước của chúng

du --max-sâu = 1 / đường dẫn | sắp xếp -r -k1,1n

Nếu một trong số họ thực sự thoát ra (người cuối cùng trong danh sách là lớn nhất do sort -r ), sau đó bạn chạy lại lệnh trên thư mục đó, rồi tiếp tục cho đến khi bạn tìm thấy thư mục / tệp vi phạm.

Nếu tất cả những gì bạn muốn là mười tập tin lớn nhất chỉ cần làm

tìm / nhà -type f -exec du -s {} \; | sắp xếp -r -k1,1n | cái đầu


số lớn nhất kết thúc ở phía dưới đối với tôi không có vấn đề gì nếu tôi thêm sort -r hay không. Có cách nào để có được số lượng lớn nhất ở đầu?
squarecandy

Bạn phải chỉ ra để sắp xếp cột nào bạn muốn sắp xếp theo, và đó là số (không phải là chữ và số). Đó là những gì -k1,1rn sẽ làm. Theo mặc định, sắp xếp sử dụng sắp xếp chữ và số trên cột đầu tiên.
Marcin

Vâng, nó sắp xếp chính xác với điều đó, nhưng theo thứ tự tăng dần từ thấp đến cao, bất kể tôi có bao gồm sort hoặc là sort -r. Tôi có hiểu lầm làm thế nào các -r hoạt động? Tôi đoán nó không phải là một vấn đề lớn. Ví dụ của bạn rất hữu ích và giúp tôi biết thông tin tôi cần.
squarecandy

2
Với sort Tôi có ( sort (GNU coreutils) 8.13 trong Ubuntu 12.04.3) tùy chọn -r không hoạt động nếu -n ngay lập tức làm theo -k ( -k1,1n ). Thứ tự tùy chọn này hoạt động: sort -rnk1,1.
pabouk

26

Một tiện ích gọi là ncdu sẽ cung cấp cho bạn thông tin bạn đang tìm kiếm.

sudo apt-get install ncdu

Trên OS X, nó có thể được cài đặt bằng Homebrew:

brew install ncdu

2
+1 Tôi chưa bao giờ nghe về cái này trước đây - cũng hoạt động rất tốt trên Mac.
Andrew E

Đây là một giải pháp đẹp hơn nhiều so với cả hai câu trả lời cao hơn.
AlexLordThorsen

Điều này thật tuyệt vời. Đề nghị này trên tất cả các câu trả lời khác!
Allen Gingrich

4

du -sk * | sắp xếp -nr | đầu -1

Điều này sẽ hiển thị thư mục / tập tin lớn nhất trong một thư mục trong KB. Thay đổi giá trị đầu sẽ dẫn đến x tập tin / thư mục hàng đầu.


2

Bài này sẽ giúp bạn tốt:

cd /path/to/some/where
du -a /var | sort -n -r | head -n 10
du -hsx * | sort -rh | head -10

2

Lệnh sau sẽ trả về 10 tệp lớn nhất từ ​​trước /path

du -a -h / đường dẫn | sắp xếp -h -r | đầu -n 10

Tôi thích sử dụng -h tùy chọn cho khả năng đọc. Cả hai dusort cần phải có -h.


1

Sử dụng

ls -A | xargs -I artifact du -ms artifact | sort -nr

Tùy chọn, bạn có thể thêm một đường ống và sử dụng head -5


0

Sử dụng du. Hãy thử điều này để đặt kết quả:

du | sort -n

0

Hãy thử một lớp lót sau (hiển thị 20 tệp lớn nhất trong thư mục hiện tại):

ls -1Rs | sed -e "s/^ *//" | grep "^[0-9]" | sort -nr | head -n20

hoặc với kích thước có thể đọc được của con người:

ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20

Lệnh thứ hai hoạt động đúng trên OSX / BSD (như sort không có -h ), bạn cần cài đặt sort từ coreutils.

Vì vậy, những bí danh này rất hữu ích để có trong RC tập tin (mỗi khi bạn cần):

alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'

-5
du -sh /path * | sort -nr | grep G

G cho GIG (để loại bỏ các tệp / thư mục nhỏ hơn)


Điều này liệt kê tất cả các tập tin và thư mục, hiển thị kích thước. Nó không sắp xếp kích thước theo giá trị byte của K, M hoặc G, trừ khi bạn GREP nó như bạn đã hiển thị
Canadian Luke

Ngoài ra, nó sẽ tìm thấy bất cứ điều gì với một G trong tên tập tin.
Kevin Panko
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.