Tôi đang tìm kiếm một cách đáng tin cậy để phát hiện đổi tên tệp và nhận cả tên tệp cũ và mới. Đây là những gì tôi có cho đến nay:
COUNTER=0;
inotifywait -m --format '%f' -e moved_from,moved_to ./ | while read FILE
do
if [ $COUNTER -eq 0 ]; then
FROM=$FILE;
COUNTER=1;
else
TO=$FILE;
COUNTER=0;
echo "sed -i 's/\/$FROM)/\/$TO)/g' /home/a/b/c/post/*.md"
sed -i 's/\/'$FROM')/\/'$TO')/g' /home/a/b/c/post/*.md
fi
done
Nó hoạt động, nhưng nó giả định rằng bạn sẽ không bao giờ di chuyển các tập tin vào hoặc ra khỏi thư mục đã xem. Nó cũng giả định rằng các sự kiện đến theo cặp, đầu tiên là move_from, sau đó move_to. Tôi không biết nếu điều này luôn luôn đúng (hoạt động cho đến nay).
Tôi đọc inotify sử dụng cookie để liên kết các sự kiện. Là cookie có thể truy cập bằng cách nào đó? Thiếu cookie, tôi nghĩ về việc sử dụng dấu thời gian để liên kết các sự kiện với nhau. Bất cứ lời khuyên nào về việc TỪ và ĐẾN một cách đáng tin cậy hơn?