Ls đệ quy có điều kiện


16

Tại sao tôi không thể sử dụng một lệnh như thế này để tìm tất cả các tệp pdf trong một thư mục và thư mục con? Tôi phải làm nó như thế nào? (Tôi đang sử dụng bash trong ubfox)

ls -R *.pdf

BIÊN TẬP

Làm thế nào tôi có thể xóa tất cả các tập tin này?

Câu trả lời:


22

Tại sao tôi không thể sử dụng một lệnh như thế này để tìm tất cả các tệp pdf trong một thư mục và thư mục con?

Ký tự đại diện *.pdftrong lệnh của bạn được mở rộng bằng bashtất cả các tệp phù hợp trong thư mục hiện tại, trước khi thực hiện ls.


Tôi phải làm nó như thế nào? (Tôi đang sử dụng bash trong ubfox)

tìm là câu trả lời của bạn

find . -name \*.pdf

là danh sách đệ quy của các tập tin pdf. -inamelà trường hợp không nhạy cảm, vì vậy

find . -iname \*.pdf

liệt kê tất cả các tệp .pdf, bao gồm ví dụ foo.PDF

Ngoài ra, bạn có thể sử dụng ls cho số lượng thư mục con hạn chế, ví dụ:

ls *.pdf */*.pdf

để tìm tất cả các tệp pdf trong các thư mục con (khớp với bar / foo.pdf, không phải với bar / foo / asdf.pdf và không phải với foo.PDF).

Nếu bạn muốn xóa các tập tin được tìm thấy với find, bạn có thể sử dụng

find . -iname \*.pdf -delete

1
Chỉ trong trường hợp bạn muốn một kết quả tương tự ls -llệnh, cho thấy kích thước tập tin, quyền sở hữu, ngày tháng, vv, bạn có thể sử dụng findvới các -lstùy chọn, ví dụfind . -name \*.pdf -ls
RFVoltolini

2

Như những người khác đã nói, tìm là câu trả lời.

Bây giờ để trả lời phần khác.

  • Làm thế nào tôi có thể xóa tất cả các tập tin này?

    tìm thấy . -iname * .pdf -exec rm {} \;

Hãy làm nó.


2
Bạn cần trích dẫn toàn cầu của bạn để giữ cho nó không bị mở rộng sớm.
Tạm dừng cho đến khi có thông báo mới.

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.