ls 在由 cron 运行时会以不同的格式显示日期

ls 在由 cron 运行时会以不同的格式显示日期

在 FC10 中,当通过命令行或脚本调用时,ls 会以“YYYY-MM-DD HH:MM”格式输出日期。当通过 cron 调用时,日期格式为“Mon DD HH:MM”。

发生了什么?为什么要改变?我检查了 env 和 alias,发现 shell 和 cron 之间没有明显区别。

答案1

日期格式取决于您的区域设置($LC_TIME、$LC_ALL、$LANG)。

答案2

我知道有两种方法可以解决这个问题,至少在 Ubuntu Lucid 中。

在 crontab 文件顶部添加此行。

LC_TIME="en_US.UTF-8"

或者在脚本中指定 ls -l 的时间格式。

ls -l --time-style=long-iso

我喜欢第二种方法,因为它使脚本本身更具可移植性。此外,每次修改 crontab 的环境时,都会修改在该 crontab 中运行的所有脚本的环境,并可能以这种方式在其他脚本中引入错误。

保罗

答案3

另一种可能性是--time-style选项。例如,它可能在某个用户的别名中指定,该用户运行 cron 任务或从命令行运行脚本。

相关内容