Score:1

inotify ไม่ติดตามเหตุการณ์การเปลี่ยนชื่อในขณะที่ดูไฟล์เดียว

ธง in

ฉันกำลังใช้ แจ้งเตือน เพื่อติดตามเหตุการณ์ในไฟล์เดียว (แทนไดเร็กทอรี) เช่น

$ 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.

คำถามของฉันคือ:

  1. ฉันจะติดตามเหตุการณ์ "การเปลี่ยนชื่อ" ของไฟล์เดียวได้อย่างถูกต้องได้อย่างไร แจ้งเตือนในขณะที่ไม่ได้ดูไดเร็กทอรีแบบเต็ม?

  2. ฉันจะรับชื่อปัจจุบันของไฟล์เดียวที่รับชมได้อย่างไร --รูปแบบ "%f" ดูเหมือนว่าตัวเลือกจะพิมพ์ชื่อไฟล์ต้นฉบับที่ส่งไปเสมอ แจ้งเตือน แม้ว่าไฟล์จะถูกเปลี่ยนชื่อตามที่แสดงด้านบน

  3. ฉันกำลังมองหา "ตัวบันทึกประวัติการเปลี่ยนชื่อ" ที่ใช้ได้กับชุดไฟล์ที่กำหนดซึ่งกระจัดกระจายอยู่ในระบบไฟล์ มีทางเลือกอื่นในการแจ้งเพื่อวัตถุประสงค์เฉพาะนี้หรือไม่?

cn flag
"แต่ inotify ไม่เคยปล่อยเหตุการณ์ MOVED_IN, MOVED_FROM (แม้แต่ DELETE_SELF) เมื่อฉันเปลี่ยนชื่อไฟล์" ดูเหมือนว่าเหตุการณ์ในไดเรกทอรีสำหรับฉัน การย้ายและการลบเป็นการเปลี่ยนแปลงไอโหนดของไฟล์ในไดเร็กทอรี มันไม่ได้แก้ไขไฟล์เอง วิธีการของฉันคือดูไดเรกทอรีและกรองชื่อไฟล์ภายในตัวตรวจสอบไดเรกทอรี

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา