监视文件并在每次更改时覆盖它?

监视文件并在每次更改时覆盖它?

我有一个带有我不喜欢的默认图标的应用程序,我想强制使用我想要的图标。我可以更改 .desktop 文件并设置图标值以使用我的图标。但问题是:每当应用程序获得更新时,它都会替换 .desktop 文件以反映更改(新的 Exec 路径等)。

我需要一种方法让我的 Linux 系统能够以某种方式监视此 .desktop 文件的更改,并在文件发生更改时覆盖该文件中的 Icon 字段。有什么办法可以不用手动做吗?

答案1

Linux 有一个功能,inotify当给定路径改变时,可以执行任意进程。您可以将它与incron(实际上有几个守护进程可用于处理从 中获取内核通知的任务inotifyincron是较旧的守护进程之一)一起使用,以sed在该文件发生更改时运行例如针对该文件的命令。

你必须小心,不要陷入无限循环。我认为incron当执行的程序仍在运行时可以选择不循环,这是为了达到这个目的。

您可能考虑的另一个选择是获取sed用于修复文件的命令,然后将其添加到您的登录或会话启动脚本中。这已经不那么无聊了,而且从我所看到的情况来看,变化将会及时发生。

相关内容