Tôi là người mới bắt đầu sử dụng Linux và tôi muốn tìm kiếm tất cả .conf
các tệp trong đó /etc/
.
Tôi đã thử grep -r *.conf /etc
, nhưng kết quả không đúng.
Tôi đang làm gì sai?
Tôi là người mới bắt đầu sử dụng Linux và tôi muốn tìm kiếm tất cả .conf
các tệp trong đó /etc/
.
Tôi đã thử grep -r *.conf /etc
, nhưng kết quả không đúng.
Tôi đang làm gì sai?
Câu trả lời:
Chỉ cần nhấn Ctrl+ Alt+ Ttrên bàn phím để mở Terminal. Khi nó mở, chạy lệnh bên dưới:
find . -type f -name "*.txt"
Điều này sẽ liệt kê tất cả các tập tin với phần mở rộng .txt
.
Lúc .
bắt đầu biểu thị thư mục hiện tại. find
tìm kiếm đệ quy trong tất cả các thư mục bên dưới đường dẫn đã cho. Nếu bạn muốn tìm kiếm bắt đầu ở một nơi khác ngoài thư mục làm việc hiện tại, hãy chỉ định đường dẫn, ví dụ:
find /etc -type f -name "*.conf"
Điều này tìm kiếm /etc
thư mục và tất cả các thư mục con của nó cho các tệp thông thường với .conf
phần mở rộng.
find
được sử dụng rộng rãi, được ghi chép tốt và có rất nhiều bài đăng StackOverflow / Exchange về nó nên khó tìm được thứ gì dễ làm việc hơn. Chỉ cần bất cứ điều gì bạn muốn làm đã được viết lên mạng ở đâu đó.
Tôi muốn sử dụng cá nhân find
, nhưng bạn cũng có thể sử dụng những thứ này:
shopt -s globstar
ls /etc/{,**/}*.conf
Và bạn có thể sử dụng định vị và nó nhanh nhưng không đáng tin cậy.
locate '/etc/**.conf'
locate
đáng tin cậy?
locate
dựa trên cơ sở dữ liệu mlocate đã được cập nhật gần đây để chính xác. Theo mặc định, nó chỉ được lên lịch để cập nhật một lần một ngày (mặc dù bạn có thể buộc nó bằng tay updatedb
).
grep
tìm kiếm nội dung của tập tin, không phải tên tập tin
Để tìm tất cả .conf
các tệp trong /etc/
bạn sẽ muốn tìm:
find /etc -name "*.conf"
Lệnh find chậm, sử dụng lệnh này sẽ cho bạn kết quả ngay lập tức:
locate "/etc/*.conf"
Thông tin thêm về locate
lệnh (trong mlocate
gói) có thể được tìm thấy ở đây: https://medium.com/@thucnc/the-fastest-way-to-find-files-by-filename-mlocate-locate-commands-55bf40b297ab
locate
đã được đề cập hai năm trước: Askubfox.com/a/333728/158442