[当我在目录上使用fs.watch时:https://nodejs.org/docs/latest/api/fs.html#fs_fs_watch_filename_options_listener
在调用fs.watch之后,它没有注意到新文件添加到目录中。我在Linux上-是否需要打电话以使其注意到新添加/删除的文件?
返回的对象FSWatcher上的唯一事件是“更改”,“错误”和“关闭”-文件有“添加”或“删除”。
interface FSWatcher extends events.EventEmitter {
close(): void;
/**
* events.EventEmitter
* 1. change
* 2. error
*/
addListener(event: string, listener: (...args: any[]) => void): this;
addListener(event: "change", listener: (eventType: string, filename: string | Buffer) => void): this;
addListener(event: "error", listener: (error: Error) => void): this;
addListener(event: "close", listener: () => void): this;
on(event: string, listener: (...args: any[]) => void): this;
on(event: "change", listener: (eventType: string, filename: string | Buffer) => void): this;
on(event: "error", listener: (error: Error) => void): this;
on(event: "close", listener: () => void): this;
once(event: string, listener: (...args: any[]) => void): this;
once(event: "change", listener: (eventType: string, filename: string | Buffer) => void): this;
once(event: "error", listener: (error: Error) => void): this;
once(event: "close", listener: () => void): this;
prependListener(event: string, listener: (...args: any[]) => void): this;
prependListener(event: "change", listener: (eventType: string, filename: string | Buffer) => void): this;
prependListener(event: "error", listener: (error: Error) => void): this;
prependListener(event: "close", listener: () => void): this;
prependOnceListener(event: string, listener: (...args: any[]) => void): this;
prependOnceListener(event: "change", listener: (eventType: string, filename: string | Buffer) => void): this;
prependOnceListener(event: "error", listener: (error: Error) => void): this;
prependOnceListener(event: "close", listener: () => void): this;
}
Nevermind-fs.watch确实看到了删除/添加/创建/未链接的文件。我的错误是仅将文件路径传递给fs.watch而不是传递目录。最好只传递目录。要在Linux上完成类似于fs.watch的操作,可以使用:
inotifywait -m /path/one -m /path/two -m /path/three -e create \
-e moved_to -e modify -e moved_from \
-e move -e create -e delete -e delete_self