日期没有这样的文件或目录

时间:2017-03-01 15:17:35

标签: bash shell scripting

我试图使用date命令编写一些没有正确输出的内容。这是我到目前为止的内容:

#!/bin/bash
# Get RPM manifest
# Output written to /tmp

NOW=$(date +%D)

rpm -qa --qf="%{NAME}.%{ARCH}\n" | sort > /tmp/$HOSTNAME.RPM_Manifest.$NOW.txt

当我运行此脚本时,我收到此消息:

[root@linmachine1 ~]# sh /usr/local/bin/rpm_manifest.sh
/usr/local/bin/rpm_manifest.sh: line 7: /tmp/linmachine1.RPM_Manifest.03/01/17.txt: No such file or directory

我怀疑问题在于如何定义NOW变量中的日期格式可能是罪魁祸首。我已尝试使用和不使用引号并获得相同的功能。看看手册页,我没有看到改变默认行为的方法,正斜线将被点替换,因为我相信这就是问题所在。

编辑:感谢您的所有回复。我不确定为什么这会被贬低。我问了一个合理的问题。是什么给了什么?

1 个答案:

答案 0 :(得分:1)

是的,你不应该在文件名中包含斜杠。

使用:

now=$(date "+%d.%m.%Y") 

rpm -qa --qf="%{NAME}.%{ARCH}\n" | sort > "/tmp/$HOSTNAME.RPM_Manifest.$now.txt"

代替,或用您喜欢的任何内容替换.