Đếm số lượng tệp trong một thư mục trong Linux? [đóng cửa]


332

Để đếm số lượng tệp trong một thư mục, tôi thường sử dụng

ls directory | wc -l

Nhưng có một lệnh khác không sử dụng wc?


16
Chính xác thì vấn đề wcgì ngăn cản bạn sử dụng nó?
vanza

5
Không hẳn vậy. Các lệnh Unix thường được sử dụng theo cách này, được xâu chuỗi trong các đường ống.
Michael Berkowski

2
Tôi đang kết nối qua ssh đến một máy chủ khác để truy cập một số dữ liệu. Thật không may, một loạt các lệnh cơ bản dường như không hoạt động trên máy chủ này. Nếu tôi sử dụng wc, nó sẽ trả về "lệnh không được nhận dạng". Vì vậy, tôi đang tìm kiếm các lựa chọn khác.
Kantura

7
Sử dụng treelệnh. Nó sẽ cung cấp cho bạn cây và ở phía dưới cho bạn biết có bao nhiêu tệp và thư mục. Nếu bạn muốn ẩn tập tin cũng sử dụng tree -a.
Elijah Lynn

5
@vanza " Chính xác thì vấn đề với wc là gì", nếu một tệp có \ntên tệp thì sao? Vâng, cực kỳ khó xảy ra! Nhưng vẫn còn hiệu lực kỹ thuật và có thể.
JamesThomasMoon1979

Câu trả lời:


523

đây là một:

ls -l . | egrep -c '^-'

Ghi chú:

ls -1 | wc -l

Có nghĩa là :: lsliệt kê các tập tin trong thư mục

-1: (đó là MỘT) chỉ một mục nhập trên mỗi dòng. Thay đổi nó thành -1a nếu bạn cũng muốn các tập tin ẩn

|: đầu ra ống vào ...

wc: "số từ"

-l: đếm số lượng l.


1
Không chờ đợi . Tôi đã làm một booboo. Bạn hoàn toàn đúng Sajad Lfc. ls -1 thư mục | egrep -c '' Điều này trả về số lượng tệp trong dir. Cảm ơn .
Kantura

1
@SajadKaruthedath ls -l . | egrep -c '^-'không tính các tập tin ẩn. Tôi đề nghị thêm -acờ vào ls.
JamesThomasMoon1979

1
@ JamesThomasMoon1979: vui lòng kiểm tra mô tả của tôi
Sajad Karuthedath

1
Điều này cho thấy lỗi khi không có tệp trong thư mục. Sử dụng ls -1 /dir 2>/dev/null | wc -l. Ở đây, đầu ra từ ls được chuyển đến / dev / null và kết quả là số 0 rõ ràng
Sathish

6
@runios đó là vì ls -ltrả về một dòng bổ sung ở đầu cộng thêm kích thước tệp cho tổng số tiền. Bạn nên sử dụng ls -1và không ls -l. Ngoài ra nếu ai đó muốn các tập tin ẩn nhưng không có các thư mục ...bạn nên sử dụngls -1A | wc -l
Daniel Biegler
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.