Linux tìm thư mục bên trong các thư mục con


19

Tôi đang cố gắng tìm một thư mục có tên 480debugerrorlồng trong thư mục con. Tôi không biết đường dẫn chính xác, hoặc thậm chí nếu tôi có chính tả chính xác của thư mục tôi muốn tìm.

Có một lệnh Linux để tìm các thư mục có tiền tố hoặc hậu tố nhất định, ví dụ các thư mục có tên "gỡ lỗi" hoặc "lỗi gỡ lỗi", với một số tiền tố hoặc hậu tố không xác định?


2
Bạn có thể thử locate(định vị tệp) hoặc find(tìm tệp).
miku

tìm -type f -name * ummy ... nhưng không nhận được

3
Bạn cần -type d . ftìm kiếm tập tin
thkala

Câu trả lời:


16

find là những gì bạn cần:

$ find -type d -name '*debugerror*'

hoặc là

$ find -type d -name '480debugerror'

nếu bạn chắc chắn về tên thư mục.



1
locate -i "480debugerror"

sẽ kiểm tra cơ sở dữ liệu liệt kê tất cả các tệp được lập chỉ mục trên PC của bạn. Tôi thường có các kịch bản như thế này và vì vậy tôi thực hiện các tìm kiếm như:

locate -i "debug" | grep -i "log"

trong đó tìm thấy tất cả các tệp có trong đường dẫn của chúng (bất kể trường hợp nào [đó là ý nghĩa của nó]) "gỡ lỗi" và "nhật ký" (Trong trường hợp bạn không biết, | grepphương tiện tìm kiếm trong kết quả xác định vị trí tạo ra)

Lợi thế của việc sử dụng định vị tìm kiếm là định vị sẽ tạo ra đầu ra nhanh hơn nhiều (vì nó chỉ kiểm tra cơ sở dữ liệu) nhưng nếu tệp / thư mục không được lập chỉ mục thì nó sẽ không tìm thấy gì. (để cập nhật cơ sở dữ liệu bạn có thể sử dụng sudo updatedb)


Chỉ khi bạn đã slocatecài đặt. Một số môi trường sản xuất không :-(
Zsolt Botykai

Đúng nhưng nếu một tùy chọn tôi sẽ nói rằng nó tốt hơn để tìm ...

1

Trong bash

shopt -s nullglob globstar
echo **/*480*/
echo **/*debug*/
echo **/*error*/

tìm kiếm đệ quy cho các thư mục có tên chứa 480, gỡ lỗi hoặc lỗi.

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.