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 inotifywait
lệ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ỳ .xml
tập tin được tạo ra.
Tôi đã nói gì
Tôi đã chạy inotifywait --help
lệ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ưfpath
thay vào đó. tức làwhile read fpath action file
bấ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ó.