eu folosesc inotifywait
pentru a ține evidența evenimentelor dintr-un singur fișier (în loc de un director), ca
$ inotifywait -m -e deschide -e închide -e muta fișierul meu.txt
Când deschid și editez fișierul, jurnalele sunt tipărite conform așteptărilor.
Configurarea ceasurilor.
Ceasuri stabilite.
myfile.txt DESCHIS
myfile.txt CLOSE_NOWRITE,CLOSE
Dar nici inotify nu emite niciodată MOVED_IN
, MUTAT DIN
evenimente (nici măcar DELETE_SELF
) când redenumesc fișierul. Pe de altă parte, dacă mă uit la director conținând myfile.txt
, mai degrabă decât un singur fișier, evenimentele sunt emise ca de obicei.
Un punct ciudat pentru mine este că, deschiderea și închiderea fișierului redenumit încă înregistrează evenimente.
myfile.txt DESCHIS
myfile.txt CLOSE_NOWRITE,CLOSE
În acest moment, dosarul meu nu este myfile.txt
dar are alt nume. În special, inotify nu urmărește niciun eveniment evocat care lucrează cu un nou creat myfile.txt
.
Întrebările mele sunt:
Cum pot urmări corect evenimentele de „redenumire” ale unui singur fișier cu inotifywait
, în timp ce nu urmăriți un director complet?
Cum pot obține numele curent al unui singur fișier vizionat? --format „%f”
Opțiunea pare să imprime întotdeauna numele fișierului original transmis inotifywait
chiar dacă fișierul este redenumit, așa cum se arată mai sus.
Caut un fel de „redenumire istoric logger” care funcționează pentru un anumit set de fișiere împrăștiate în sistemul de fișiere. Există alternative la inotificare, care pot fi utilizate în acest scop specific?