Cách tìm tất cả các tệp có cùng phần mở rộng trong một thư mục


62

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:


95

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.


1
Nó hoạt động. Có bất kỳ sự thay thế cho lệnh này?
Adrian George

1
Bạn có thể xem Locate .
Mitch

@AdrianGeorge 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 đó.
BallpointBen

6

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'

Tại sao không locateđáng tin cậy?
Giraldi

1
@Giraldi 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).
Oli

@Oli không đúng trên máy Mac, phải không? nghĩ rằng mac os giữ cho mlocate được cập nhật
d8aninja

6

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"

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.