如何使用当前时间的日期更新文件名

时间:2017-11-28 17:12:47

标签: shell date command filenames

我正在尝试启动一个stdbuf,它能够在shell中使用此命令每天创建一个新日志:

stdbuf -i0 -o0 -e0 /.../my_dir/watchdog_foo >> /.../my_dir/log_foo_`date '+%F'` &

有了这个,我想要:

log_foo_2017-11-28
log_foo_2017-11-29
...

为了进行测试,我推出了另一个订单:

stdbuf -i0 -o0 -e0 /.../my_dir/watchdog_foo >> /.../my_dir/log_foo_`date '+%R'` &

试图查看每分钟是否创建了一个日志,但它没有发生。日志一直写在同一个文件上,而我跳的是:

log_foo_18:05
log_foo_18:06
...

如何修改此命令以实现我的目的?

1 个答案:

答案 0 :(得分:0)

启动此命令后,shell会将date +%R扩展为当前时间。之后,它不会再次更新,因此您的日志将被重定向到同一文件。要获得所需的行为,您需要每天重新启动脚本(以获取更新的日期)。你可以使用像cron这样的工具每晚午夜运行脚本来杀死上一个进程并重新运行新日期。

您还可以考虑利用logrotate等工具。