Khi bạn chuyển không có tên tệp cho ack, nó sẽ hoạt động trên một tập tin mặc định tích hợp sẵn loại trừ các tệp nhị phân không được nhận dạng. Nếu bạn vượt qua tên tệp, nó sẽ tìm kiếm trong tất cả các tệp bạn vượt qua. Điều này giải thích sự khác biệt giữa ack foo
và ack foo **
.
ack 1
Trong ack 1.x, sử dụng cờ -a
để báo cho ack không bỏ qua các tệp có loại mà nó không nhận ra.
Bạn có thể tạo bí danh nếu bạn muốn cờ đó thường xuyên hơn không: thêm dòng alias ack='ack -a'
trong ~/.bashrc
hoặc ~/.zshrc
. Nếu bạn thiết lập bí danh này và muốn gọi ack
mà không có tùy chọn, hãy gọi \ack
(dấu gạch chéo ngược sẽ vô hiệu hóa mở rộng bí danh). Các kịch bản không bị ảnh hưởng bởi bí danh, chỉ có các vỏ tương tác.
Ngoài ra, bạn có thể thêm -a
tùy chọn cho ~/.ackrc
.
Các trận đấu trong các tệp nhị phân sẽ được liệt kê dưới dạng tệp Binary test1 khớp với. Không có cách nào để vô hiệu hóa hành vi này mà không sửa đổi chính Ack (ít nhất là thêm một plugin).
ack 2
Trong ack 2.0, -a
tùy chọn đã bị xóa. Thay vào đó, những gì bạn có thể làm là xác định loại phù hợp với tất cả các tệp và sử dụng -k
tùy chọn để tạo ack bao gồm tất cả các tệp thuộc loại đó. Lưu ý rằng các loại tệp được xử lý theo thứ tự không thể đoán trước, vì điều này sẽ khiến một tập hợp các loại nhị phân ngẫu nhiên được xử lý như bình thường thay vì như loại thông thường.
ack --type-set='all:match:.*' -k foo
Bằng cách này, các trận đấu được in ngay cả đối với các tệp trông khác đi. Như trên, bạn có thể thêm các tùy chọn này vào bí danh hoặc cho .ackrc
.