如何使用“日期”打印明天的星期几

Ale*_*ber 4 linux date cron

在 CentOS 6 Linux 上,我date +%a在几个 cronjobs 和脚本中使用来生成日志文件名称myprog-Tue.txt,多年来这对我来说效果很好。

但是现在对于一个程序,我需要删除以前的日志文件,即在我启动程序并将其输出重定向到之前的 cronjob 中myprog-Tue.txt,我想删除myprog-Wed.txt.

通过这种方式,我想清除旧的日志文件,但仍然有 5-6 天的日志文件。

所以我试过:

# date -v+1d +%a
date: invalid option -- 'v'
Try `date --help' for more information.
Run Code Online (Sandbox Code Playgroud)

有人知道这里出了什么问题吗?

jim*_*-cl 11

问题不在于您如何使用date来输出您想要的内容……您的问题是:

通过这种方式,我想清除旧的日志文件,但仍然有 5-6 天的日志文件

那么,为什么不使用find删除本周的所有文件呢?

find /path/to/files/ -mtime +7 -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)

此外,它date有许多不同的实现——我记得我上次使用它时很难找到flags做我想做的事情的权利......而且让它在 Linux 和 Linux 之间以相同的方式工作并不容易AIX 机器...所以,以防万一此评论有助于您决定反对date:)

  • @jim BTW:AIX +1 ......几年前我一直在使用它。此外,由于这是 Linux,您可以依靠 `-delete` 操作符进行 (GNU) 查找。你可以替换`| xargs rm {} \;` 和 `-delete` 并且不会被引用规则或 -no-run-if-empty 卡住。 (2认同)

小智 6

你会这样做:

date -d "+1 days" +%a
Run Code Online (Sandbox Code Playgroud)

这呈现:

星期六