2011-02-15 38 views

回答

4

如果你看這兩個文件是從移動的目錄和文件被移動到該目錄,那麼您將收到的源目錄中的IN_MOVED_FROM事件和目標目錄中的IN_MOVED_TO事件,既與相同的cookie。然後,您可以使用這兩個事件的name字段來找出文件被移入和移出的位置。

如果你只看源代碼目錄,或者只看目標目錄,那麼你只會得到其中的一個事件,所以你只有一半的信息。這是inotify的限制。

+0

如何使用「IN_MOVE_SELF」監視文件?我不知道文件的移動位置,因此我需要知道移動時的新文件路徑。 – Amanda 2011-02-16 01:41:01

0

你可以抓住一個文件描述符文件之前移動,並在閱讀符號鏈接:

'/proc/self/fd/' + $fd 

其中$ fd是你的文件描述符,此文件描述符將指向您的文件。注意我只在ext4上測試過它,它適用於LVM2,但不適用於OverlayFS。同時打開一個文件描述符將阻止爲該文件啓動事件。

Linux內核版本之間也可能存在問題

相關問題