Làm cách nào tôi có thể tìm kiếm đệ quy tên thư mục bằng một chuỗi cụ thể trong đó chuỗi chỉ là một phần của tên thư mục


73

Làm cách nào tôi có thể tìm kiếm đệ quy tên thư mục bằng một chuỗi cụ thể trong đó chuỗi chỉ là một phần của tên thư mục?

Ví dụ: tên thư mục là "8.0.3-99966_en", nhưng tôi muốn tìm kiếm đệ quy các thư mục có chuỗi "99966".

Câu trả lời:


95

Bạn có thể sử dụng findlệnh:

find YOUR_STARTING_DIRECTORY -type d -name "*99966*" -print

Thí dụ:

find ~ -type d -name "*99966*" -print

nên tìm tất cả các thư mục ( -type d) bắt đầu từ thư mục chính của bạn ( ~) có tên của chúng chứa chuỗi "99966" ( -name "*99966*") và xuất chúng ( -print).


Làm thế nào tôi có thể loại trừ một thư mục nhất định khỏi tìm kiếm? Tôi cần tìm kiếm / nhưng tôi nhận được vô số kết quả / Proc mà tôi không quan tâm.
Kozuch

@Kuzuch (sau một thời gian!): Bạn có thể sử dụng grep âm, chuyển tìm kiếm sinf thành một phần thưởng như: find <anything> | grep -v "/ Proc" sẽ lọc ra tất cả các dòng chứa chuỗi tìm kiếm.
Juan Lanus


9

Bạn có thể đặt đầu ra để greplàm nổi bật tên thư mục
Một cái gì đó như

find / -type d | grep "directory name"

Chỉ /báo để tìm kiếm toàn bộ máy tính


@Zanna bạn nói đúng, tôi đã chỉnh sửa câu trả lời. Cảm ơn bạn đã chỉ ra điều đó
Collin

3

Một cách dễ dàng để làm điều này là sử dụng find | egrep string. Nếu có quá nhiều lượt truy cập, sau đó sử dụng -type dcờ để tìm. Chạy lệnh khi bắt đầu cây thư mục bạn muốn tìm kiếm, hoặc bạn sẽ phải cung cấp thư mục làm đối số find.

Một cách khác để làm điều này là sử dụng ls -laR | egrep ^d.

locatelệnh cũng có ích:locate string

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.