tìm tập tin mà không cần gia hạn


43

Hãy nói rằng tôi có:

foo.txt
bar
baz.ooo

Nếu tôi sử dụng ls -1 !(*.*)thì tôi sẽ chỉ nhận được bartrên đầu ra. Tuyệt vời, bây giờ tôi muốn có kết quả tương tự với tìm kiếm - một số find -regexsẽ thực hiện công việc.

GHI CHÚ:

find -name !(*.*)không phải là câu trả lời vì !(*.*)trong đó vẫn là toàn cầu của Bash mà tôi KHÔNG thể sử dụng.

Câu trả lời:


64

bạn có thể sử dụng: find . -type f ! -name "*.*" các !phủ nhận biểu thức sau đây, ở đây một tên tập tin có chứa một ''

bạn cũng có thể sử dụng -maxdepthtùy chọn để giảm độ sâu tìm kiếm.


1
Tôi thích câu trả lời của bạn nhất vì tôi có một số ràng buộc khác đối với tên tệp và của bạn là bằng chứng đạn.
pawel7318

Điều này cũng tuyệt vời khi ls -1 !(*.*)không hoạt động vì !"Không tìm thấy sự kiện".
Noumenon

2
@Noumenon làm gì set +Hđể giải quyết điều đó
pawel7318

1
Nếu bạn coi .gitignorelà một tệp không có phần mở rộng (như path.extname ()) của Node, hãy sử dụng ! -name "?*.*"thay vì! -name "*.*"
Johnny Wong
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.