在 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 任务或从命令行运行脚本。