Cách sử dụng ack để tìm kiếm tên tệp


15

Tôi đã bắt đầu sử dụng ack nhanh hơn nhiều so với grep. Tuy nhiên bằng cách sử dụng ack tôi muốn tìm kiếm tên tệp hơn là nội dung tệp. Có cách nào làm được việc này không?

Câu trả lời:


16

Sử dụng đúng công cụ cho đúng công việc. Nếu bạn muốn tìm kiếm tên tệp, hãy sử dụng 'find':

$ # search for all *.txt file in current directory
$ find . -iname "*.txt"

1
rất đúng. "một khi bạn cầm búa trong tay, mọi thứ bắt đầu trông giống như một cái đinh" :)
akira

2
Chà, ack (và grep) đẹp hơn vì bạn không cần phải rõ ràng về regex trừ khi bạn muốn. Tôi thường chỉ làm mộtfind . | ack whatev.ext
Ehtesh Choudhury

Điều này làm việc để tìm thư mục là tốt.
Pratik Khadloya

1
find và ack hoạt động khác nhau vì ack lọc ra rất nhiều kết quả theo mặc định (nội dung của các thư mục kiểm soát phiên bản, các đối tượng được biên dịch trong kho lưu trữ nguồn) sẽ được bao gồm bởi find. Búa tốt nhất phụ thuộc vào kết quả bạn muốn.
Joshua Goldberg

1
Đây không phải là trả lời câu hỏi ...
lajarre

23
ack -g REGEX

In các tệp có đường dẫn tương đối + tên tệp khớp với REGEX


1
thêm [^/]*$vào REGEX của bạn để chỉ tìm kiếm trong tên tệp
simon

7

Tôi đồng ý sử dụng find nếu bạn chỉ tìm kiếm các tệp * .txt. Tuy nhiên, ack có các tính năng phát hiện loại tệp mạnh mẽ, vì vậy bạn có thể sử dụng

ack -f --perl

sẽ tìm thấy tất cả các tệp Perl, dựa trên cả tên tệp (* .pm, * .pl, * .t và * .pod) và dòng shebang.


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.