我如何根据日期命名日志文件?

我如何根据日期命名日志文件?

我尝试过执行类似 date=date 的操作,然后将我的文件命名为 $date.txt,但输出是 date.txt。

有趣的是,我请求 Copilot 帮忙,但我不明白它的建议并且不确定如何解决它:

定时任务

# run the main script and outputs to a different file every day
20 12 * * * python3 export/main.py > export/logs/$(date +\%Y-\%m-\%d).log 2>&1

哦,顺便说一下,我希望它能与 Fish shell 一起工作,或者了解如何将命令从 fish 转发到 bash。

答案1

我不知道 Fish 或你的副驾驶的建议,但为了保存输出命令变成多变的在 bash 中语法是:

variable_name="$(command)"

因此要保存输出date到变量日期你应该做这个:

date="$(date)"

虽然date命令的默认输出包含空格,但我建议您使用类似的东西$(date +\%Y-\%m-\%d),而不是仅仅$(date)

答案2

尝试

export/logs/$(date --iso-8601 | tr --delete -).log

今天(4 月 23 日)的收益

export/logs/20230423.log

我发现这种日期格式很方便,因为非常简洁并且可以排序:例如

/empty/export/logs$ ls -l
-rw-rw-r-- 1 zzzz users 0 Apr 23 07:23 20220423.log
-rw-rw-r-- 1 zzzz users 0 Apr 23 07:23 20230423.log
-rw-rw-r-- 1 zzzz users 0 Apr 23 07:24 20230513.log
-rw-rw-r-- 1 zzzz users 0 Apr 23 07:24 20230523.log
-rw-rw-r-- 1 zzzz users 0 Apr 23 07:24 20240423.log
/empty/export/logs$ ls -lr
-rw-rw-r-- 1 zzzz users 0 Apr 23 07:24 20240423.log
-rw-rw-r-- 1 zzzz users 0 Apr 23 07:24 20230523.log
-rw-rw-r-- 1 zzzz users 0 Apr 23 07:24 20230513.log
-rw-rw-r-- 1 zzzz users 0 Apr 23 07:23 20230423.log
-rw-rw-r-- 1 zzzz users 0 Apr 23 07:23 20220423.log

相关内容