Tôi đã thấy câu trả lời này .
Bạn nên xem xét sử dụng inotifywait, như một ví dụ:
inotifywait -m /path -e create -e moved_to | while read path action file; do echo "The file '$file' appeared in directory '$path' via '$action'" # do something with the file done
Câu hỏi của tôi là, đoạn script trên xem một thư mục để tạo các tệp thuộc bất kỳ loại nào, nhưng làm cách nào để sửa đổi inotifywaitlệnh chỉ báo cáo khi một tệp thuộc loại / tiện ích mở rộng nhất định được tạo ra (hoặc di chuyển vào thư mục) - ví dụ: nó nên báo cáo khi bất kỳ .xmltập tin được tạo ra.
Tôi đã nói gì
Tôi đã chạy inotifywait --helplệnh và đã đọc các tùy chọn dòng lệnh. Nó có --exclude <pattern>và --excludei <pattern>ra lệnh cho EXCLUDE các loại tệp nhất định (bằng cách sử dụng regEx), nhưng tôi cần một cách để INCLUDE chỉ các tệp của một loại / tiện ích mở rộng nhất định.
pathở trên có lẽ không phải là tên biến tốt nhất nếu bạn muốn chơi với cái này đầu tiên trong một vỏ. Nếu bạn sử dụng nó, thì bạn sẽ không thể sử dụng các lệnh và mọi thứ vì điều này về cơ bản chỉ là ghi đè tiêu chuẩnPATH. Do đó tôi khuyên bạn nên sử dụng một tên var thay thế, nhưfpaththay vào đó. tức làwhile read fpath action filebất kỳ lệnh tiêu chuẩn nào thường có sẵn từ shell của bạn vẫn sẽ có.