平滑运算符:在写入文件时重命名文件

jak*_*kar 6 io file inotify rakudo raku

在 Linux(可能也在 Windows/OSX)中,如果我们打开一个文件进行写入并在写入时重命名它,raku 进程会顺利进行并继续写入文件。

但是我们如何在重命名发生时找到文件的新名称(路径)?

IO::Notification不是要走的路,因为它不提供其他信息,而只提供一般描述:

FileRenamed or FileChanged
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

Eli*_*sen 7

简短回答:不,据我所知。

这里有一些技术背景:MoarVM 上的 Rakudo(这是唯一支持IO::Notificationafaik 的后端)依赖libuv于此功能。如果libuv不支持,乐堂会的可能性很小。

我不知道是否libuv支持该功能。如果是这样,我建议您在 MoarVM 中提出问题以引起注意。或者更好的是,编写一个 Pull Request 来实现该功能。