2012-06-15 33 views
26

Tôi muốn tìm kiếm một loạt tệp dựa trên tên tệp.tệp tìm kiếm linux dựa trên mẫu tên tệp

Đây là thư mục của tôi:

enter image description here

Ví dụ tôi đã có tập tin trên trên.

Tôi chỉ muốn tìm kiếm tệp không có _bak.

+1

Bạn đang sử dụng ngôn ngữ lập trình nào? API nào? – sarnold

+0

Câu hỏi của bạn quá mơ hồ để đưa ra câu trả lời hay. Bạn đang cố gắng tìm kiếm nội dung của các tập tin? Tên tập tin chính họ? Bạn chỉ đang cố gắng để có được tên tập tin mà không kết thúc trong '_bak'? –

+0

Ngoài ra, bạn thực sự nên đăng nội dung thư mục của mình ở dạng văn bản thuần túy chứ không phải hình ảnh. Xem [help help] (http://stackoverflow.com/editing-help#code). –

Trả lời

36

Nếu bạn đang muốn giới hạn tìm kiếm của bạn vào thư mục hiện, sử dụng:

find . -maxdepth 1 -mindepth 1 ! -name '*_bak' 

Nếu bạn muốn tìm đệ quy trong tất cả các thư mục, hãy xóa -maxdepth 1.


Sửa để đáp lại lời nhận xét OP của

Để có được các file bắt đầu với ei và không kết thúc với _bak sử dụng:

find . -type f -name 'ei*' -a ! -name '*_bak' 
+1

Hi Tim Pote, câu trả lời của bạn là tốt nếu không có -maxdepth 1 -mindepth 1. Cảm ơn sự giúp đỡ của bạn. – crchin

+0

@ user1154655 Đã thay đổi theo đề xuất của bạn. –

+0

Cảm ơn bạn đã trả lời nhanh! – crchin

-1

Sử dụng tùy chọn Đối sánh bí mật.

Ví dụ, nếu bạn muốn tất cả các tập tin mà không có sự _bak từ, sử dụng:

grep -v *_bak /path/to/file 
+0

Hi Erwald, câu trả lời của bạn không hoạt động nhưng cảm ơn sự giúp đỡ của bạn. – crchin

6

Vui lòng thử này:

find . -type f ! -iname "*_bak" 

Ở trên lệnh sẽ tìm tất cả các tệp chưa kết thúc bằng _bak.

+0

Lệnh hữu ích. cảm ơn . nếu thư mục chứa các tập tin khác là tốt, nhưng tôi chỉ muốn tìm kiếm tên tập tin bắt đầu với ei nhưng không có bak? – crchin

+1

@ user1154655 Xem câu trả lời của tôi. –

+1

Điều này sẽ làm 'tìm. tên 'ei *' -type f! -iname "* _bak" ' – Azi

Các vấn đề liên quan