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ả .confcá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ả .confcá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. findtì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 /etcthư 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 .confphầ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?
locatedự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).
greptì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ả .confcá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ề locatelệnh (trong mlocategó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