使用 MV 重命名日志的问题

使用 MV 重命名日志的问题

我有创建的日志文件,log.2015-09-28T13-36-29并且我正在尝试更改日志文件的名称以更好地适应 logrotate。

以下命令可以显示我需要重命名的文件:

ls log.$(date -d 'today' +'%Y-%m-%d')*

但是这个命令给我错误,说它找不到文件。

mv "log.$(date -d 'today' +'%Y-%m-%d')*" "(date -d 'today' +'%Y-%m-%d').log"

关于如何修复此命令,您有什么想法吗?或者有更好的方法吗?

答案1

您遇到的问题与命令的语法有关mv。如果您暂时忘记了您正在尝试使用日期文件,则您的命令相当于:

mv file.a file.b file.c file.d

在这种情况下,不清楚哪个文件应该重命名为什么。

解决该问题的方法可能是使用命令遍历每个文件并重命名它 - 可能类似于:

for each in log.$(date -d 'today' +'%Y-%m-%d')*; do mv $each $(date -d
'today' +'%Y-%m-%d').log;done

相关内容