将bash输出重定向到日志文件(文件名包含日期)

14

我只是想将我的脚本输出重定向到一个文件中,为此我尝试重定向一个简单命令的输出,对于特定语法它有效,而对于其他语法则无效。您能否看一下并给我任何建议?先谢谢了。 问候, O。

以下这个工作正常:

du -h > "/var/log/mytst.$(date +%Y-%m-%d_%H:%M).log"

而这个则不行:

du -h > /var/log/mytst."$(date +"%D--%H:%M:%S")".log 2>&1

有任何想法吗?


你对第二个命令有什么问题? - chepner
1个回答

26
看看这个输出:
$ echo "/var/log/mytst.$(date +%Y-%m-%d_%H:%M).log"
/var/log/mytst.2014-08-11_13:54.log
$ echo /var/log/mytst."$(date +"%D--%H:%M:%S")".log
/var/log/mytst.08/11/14--13:54:00.log

第二个版本期望存在一个树形层次结构,因为/date +%D的输出中被视为目录分隔符。你的问题没有说明第二个版本“不工作”的具体情况,所以我猜测错误可能是“没有这样的文件或目录”。

谢谢,现在我明白了,但昨天我有点困惑;我现在会用“-”格式化日期以避免这个错误消息。 - Orsius

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接