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?


50

Làm cách nào để liệt kê tất cả các tệp trong một thư mục và kích thước tệp đệ quy của chúng?

---biên tập

Tôi muốn xem kích thước 'cuộn lên' đến các thư mục mẹ trong thư mục được liệt kê. Tôi không muốn xem các thư mục con hoặc nội dung hoặc kích thước của chúng.


1
Bạn có nghĩa là bạn muốn xem tổng kích thước (tổng) của tất cả các tệp trong một thư mục, như nhấp chuột phải vào một thư mục trên máy tính để bàn của bạn và chọn 'thuộc tính'?
Pavlos G.

Bạn đang tìm kiếm phần mềm giúp bạn tìm các tệp lớn hoặc một cái gì đó để có được một cây tệp (có thể thu gọn)?
Lekensteyn

Xin chào @Pavlos G - Ý tôi là tổng của từng thư mục trong thư mục tôi hiện đang ở - không phải là tổng cho thư mục tổng thể.
hawkeye

@JG - Kiểm tra cập nhật của tôi ;-)
Pavlos G.

Câu trả lời:


53

Tôi đoán cách dễ nhất là bằng cách gõ ls -l, hoặc ls -lhsẽ cung cấp kích thước tệp ở định dạng có thể đọc được (KB, MB, v.v.).

Nếu 'đệ quy' có nghĩa là liệt kê tất cả các thư mục tiếp theo, ví dụ:

/ foo /
/ foo / thanh / ....

Sau đó, bạn cũng nên thêm tham số R, thích ls -lRhoặcls -lhR

Thông tin thêm lscó thể được tìm thấy bằng cách gõman ls

Cập nhật:

Lệnh sau như Lekensteyn đề xuất có thể sẽ thực hiện công việc:

du -h --max-depth=1 <folder>

-hdành cho người có thể đọc được
--apparent-sizelà một cách khác để hiển thị kích thước như đã nêu
--max-depthlà mức độ của các thư mục con bạn muốn đi xuống.


Sử dụng gì cho độ sâu tối đa? -1?
dylanh724

61
apt-get install ncdu

nhập mô tả hình ảnh ở đây

Nó cũng tương tác vì vậy nếu bạn muốn kiểm tra thư mục con chỉ cần LÊN, XUỐNG và Enter vào nó.


Chỉ cần những gì tôi đang tìm kiếm. Cảm ơn rât nhiều!
Mathlight

Có lẽ đề xuất phần mềm tuyệt vời nhất tôi từng có
SomethingS Something

đây phải là câu trả lời được chấp thuận
dvdmn

30

Để có được tổng kích thước của một thư mục và tất cả trẻ em

du -hs directory/*

Tôi muốn cấp độ tiếp theo từ đó - kích thước đệ quy của tất cả trẻ em cấp độ đầu tiên.
hawkeye

1
Tôi sẽ chỉnh sửa câu trả lời của tôi. Bạn cần sử dụng thư mục du -h / *
Richard Holloway

17

Ngoài ra kiểm tra tree. Nó không được cài đặt theo mặc định mà là các kho lưu trữ.

Thí dụ:

richard@legend:~$ tree Applications/ -s
Applications/
├── [           4096]  AlexFTPS-1.0.2
│   ├── [      31232]  AlexPilotti.FTPS.Client.dll
│   ├── [     274432]  C5.dll
│   ├── [       1457]  C5-License
│   ├── [      35147]  COPYING
│   ├── [       7639]  COPYING.LESSER
│   ├── [         70]  ftps
│   ├── [      28672]  ftps.exe
│   ├── [      98304]  Plossum CommandLine.dll
│   ├── [       1557]  Plossum-License
│   └── [       2560]  README
└── [           4096]  src
    └── [     180849]  AlexFTPS_bin_1.0.2.zip

Nhiều lựa chọn hơn có thể được tìm thấy trong trang người đàn ông.


Kích thước nên được hiển thị?
hawkeye

JG: -s hiển thị kích thước.
Richard Holloway

1
Hiển thị kích thước của bản ghi thư mục chứ không phải kích thước thư mục đầy đủ.
Steven Lu

-hhiển thị kích thước theo cách đọc của con người, ví dụtree -s
Eric Wang

15

Vì bạn không đề cập cụ thể đến việc bạn cần một giải pháp dựa trên thiết bị đầu cuối, tôi nghĩ baobab hay còn gọi là Trình phân tích sử dụng đĩa bị thiếu trong danh sách.

Nó được cài đặt trong Ubuntu theo mặc định và thực hiện chính xác những gì bạn muốn trong một giao diện người dùng đồ họa đẹp với khả năng truy sâu hệ thống phân cấp thư mục.

Ngoài việc hiển thị danh sách các thư mục với kích thước của chúng, nó còn hiển thị biểu đồ vòng hoặc biểu đồ tre của việc sử dụng hệ thống tệp, cực kỳ hữu ích để hiển thị các thư mục chiếm nhiều dung lượng nhất.

baobab Trình phân tích sử dụng đĩa


7

Một giải pháp đầu cuốidulệnh:

du --all --human-readable --apparent-size

(viết tắt du -ah --apparent-size:)

duhiển thị việc sử dụng đĩa cho mỗi tập tin và thư mục. Các tùy chọn giải thích:

  • --all, -a- hiển thị kích thước cho các tệp, không chỉ thư mục
  • --human-readable, -h- hiển thị kích thước ở định dạng có thể đọc được của con người, ví dụ: 10K(10 kilobyte), 10(10 byte)
  • --apparent-size - hiển thị kích thước tệp thực tế, không phải kích thước như đĩa được sử dụng.

Tôi chỉ muốn những đứa trẻ cấp một
hawkeye

2
@hawkeye cho cấp 1 bạn có thể sử dụng--max-depth=1
nikoskip

4
@nikoskip mẹo hay! Cũng tốt để biết là tốc ký, --max-depth=1có thể rút ngắn -d1.
Lekensteyn

làm thế nào để có được tất cả những thứ này theo thứ tự kích thước ..
kRazzy R

làm thế nào để xem nội dung và trống rỗng: / dev / sda5 ext4 430g 381G 27g 94% / máy tính xách tay của tôi là dưới 1 tháng tuổi và nó là như vậy đầy đủ mà nó làm cho không có ý nghĩa
kRazzy R

2

Điều này dường như để thực hiện các mẹo khi liên kết sim.

ls -LRlh

câu trả lời đã cho không cung cấp cho tôi chi tiết về các liên kết sim (ls -lhR), các số được liệt kê bên cạnh nó không tương ứng với kích thước phù hợp của từng giá trị. Câu trả lời của tôi đã cho tôi một hệ thống phân cấp với cấu trúc cây được xác định và câu trả lời đúng .... HOẶC bạn đang đề cập đến một số câu trả lời nâng cao khác?
Mulki

Bỏ phiếu rút lại, nâng cao. Vui lòng chỉnh sửa và đưa nhận xét vào câu trả lời ... Cảm ơn bạn đã giải thích. ;-)
Fabby

1

Để có được danh sách đã sắp xếp, hãy đặt mọi thứ vào MB và sắp xếp:

du -m * | sort -n

Hoặc sử dụng công cụ như DiskReport để tạo báo cáo về cây đầy đủ.


1

Một giải pháp đầu cuối khác với findvà sắp xếp (theo kích thước tệp, cột 1)

$ find . -maxdepth 1 ! -path . -printf "%s %p\n" | sort -n -k1                              
178 ./somefile.txt
219 ./somefile2.txt
4096 ./c
4096 ./cs2
4096 ./perl
4096 ./python
4096 ./random
4096 ./sh

Điều này không hiển thị kích thước của thư mục.
muru
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.