Skip to main content

Grep, SilverSearcher (ag), RipGrep (rg) và file ẩn

Trên *NIX, một file được gọi là file ẩn (hidden file) khi tên của nó bắt đầu với dấu chấm (.).

Các file phổ biến thường gặp là các file để cấu hình các phần mềm, ví dụ: .vimrc .bashrc .gitignore .gitlabci,yml ...

Image by OpenClipart-Vectors from Pixabay

Khi muốn tìm một từ khóa bất kỳ trong các file ở thư mục hiện tại, ta có thể dùng grep:

grep -Rin noi_dung .  # dấu chấm đại diện cho thư mục hiện tại

$ mkdir testdir; echo pika > testdir/.filepassword
$ cd testdir/
$ grep -Rin pika .
./.filepassword:1:pika

Một nhược điểm của grep so với các chương trình "hiện đại" hơn như SilverSearcher (ag) hay RipGrep (rg) là

nó không hiểu các file ignore, đặc biệt là .gitignore, nên khi tìm kiếm, nó vẫn thực hiện tìm cả trong các thư mục mà người dùng đã cố tình bỏ qua bằng việc ghi tên chúng vào .gitignore.

ag và rg mặc định sẽ tuân thủ file .gitignore, và cũng mặc định bỏ qua các hidden file, kể cả thư mục .git trong các software project quản lý bằng git.

Điều này sẽ gây ra rắc rối nếu người dùng chuyển từ grep sang các chương trình hiện đại hơn mà không đọc kỹ hướng dẫn:


Để tìm cả các file hidden, với ag cần dùng option --hidden hay -u

    --hidden
              Search hidden files. This option obeys ignored files.

     -u --unrestricted
              Search all files. This ignores .ignore, .gitignore, etc. It searches binary and hidden files as well.

$ ag pika # không thấy gì
$ ag --hidden pika
.gitignore
1:pikagit

Tương tự với rg

 $ rg -uuu pika
.filepassword
1:pika

$ rg --hidden pika
.filepassword
1:pika

Nếu luôn muốn tìm hidden file mà vẫn tuân theo ignore files như .gitignore, bạn có thể đặt alias trong .bashrc:

alias ag='ag --hidden'

Hết.

HVN at https://pymi.vn and https://www.familug.org

Comments

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG