ฉันกำลังใช้ แจ้งเตือน เพื่อติดตามเหตุการณ์ในไฟล์เดียว (แทนไดเร็กทอรี) เช่น
$ inotifywait -m -e เปิด -e ปิด -e ย้าย myfile.txt
เมื่อฉันเปิดและแก้ไขไฟล์ บันทึกจะถูกพิมพ์ตามที่คาดไว้
การตั้งค่านาฬิกา
ก่อตั้งนาฬิกา
myfile.txt เปิด
myfile.txt CLOSE_NOWRITE,CLOSE
แต่ inotify ไม่เคยปล่อยเช่นกัน ย้ายแล้ว_IN, ย้าย_จาก เหตุการณ์ (ไม่แม้แต่ DELETE_SELF) เมื่อฉันเปลี่ยนชื่อไฟล์ ในทางกลับกัน ถ้าผมดู ไดเรกทอรี ที่มี myfile.txtแทนที่จะเป็นไฟล์เดียว เหตุการณ์จะถูกส่งตามปกติ
จุดที่แปลกอย่างหนึ่งสำหรับฉันคือการเปิดและปิดไฟล์ที่เปลี่ยนชื่อยังคงบันทึกเหตุการณ์
myfile.txt เปิด
myfile.txt CLOSE_NOWRITE,CLOSE
ณ จุดนี้ ไฟล์ของฉันไม่ใช่ myfile.txt แต่มีอีกชื่อหนึ่ง โดยเฉพาะอย่างยิ่ง inotify ไม่ติดตามเหตุการณ์ใด ๆ ที่เกิดขึ้นจากการทำงานที่สร้างขึ้นใหม่ myfile.txt.
คำถามของฉันคือ:
ฉันจะติดตามเหตุการณ์ "การเปลี่ยนชื่อ" ของไฟล์เดียวได้อย่างถูกต้องได้อย่างไร แจ้งเตือนในขณะที่ไม่ได้ดูไดเร็กทอรีแบบเต็ม?
ฉันจะรับชื่อปัจจุบันของไฟล์เดียวที่รับชมได้อย่างไร --รูปแบบ "%f" ดูเหมือนว่าตัวเลือกจะพิมพ์ชื่อไฟล์ต้นฉบับที่ส่งไปเสมอ แจ้งเตือน แม้ว่าไฟล์จะถูกเปลี่ยนชื่อตามที่แสดงด้านบน
ฉันกำลังมองหา "ตัวบันทึกประวัติการเปลี่ยนชื่อ" ที่ใช้ได้กับชุดไฟล์ที่กำหนดซึ่งกระจัดกระจายอยู่ในระบบไฟล์ มีทางเลือกอื่นในการแจ้งเพื่อวัตถุประสงค์เฉพาะนี้หรือไม่?