Câu trả lời:
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 *.pdf
trong lệnh của bạn được mở rộng bằng bash
tấ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. -iname
là 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
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ó.
ls -l
lệ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ụngfind
với các-ls
tùy chọn, ví dụfind . -name \*.pdf -ls