实时重命名文件夹内的文件

kni*_*hka 3 bash scripts cron 12.04

有没有办法在创建文件夹时重命名文件夹中的文件?

我可以每隔几秒钟运行一次 cron 作业来做类似的事情......

find . -name "file.*" -exec sh -c 'echo mv "$1" "$(echo "$1" | sed s/file.*\$/"file-$(date).*"/)"' _ {} \;

但这似乎真的很麻烦,周期明智......

Ser*_*gey 5

Linux 中有一个框架,inotify它允许程序在每次文件或目录更改时注册要调用的处理程序,因此如果您正在编写 C 程序,则可以使用它。显然,您的程序需要在发生更改时运行。

有一个名为incron的特殊守护进程,它类似于“用于 inotify 的 cron”,能够在文件/目录更改时运行脚本。它可以用 安装sudo apt-get install incron,然后你需要在它的配置文件中添加几行。

这是一篇有用的文章:Linux incrond inotify:监视目录的变化并采取行动

如果您在突触中搜索“inotify”,您会发现更多具有类似功能的库和程序。