尝试创建一个带有日期和时间且带有空格的文件夹

尝试创建一个带有日期和时间且带有空格的文件夹

我正在尝试使用以下命令创建文件夹:

mkdir $(date +%Y-%m-%d %H%M) 

因此,您会看到两者之间有一个空格,我知道这不是最佳做法,但我希望它能够发挥作用。

我曾尝试逃离空间,使用引号,但似乎没有任何作用,这让我发疯。

请问有什么想法吗?

答案1

您需要在整个$(...)命令替换周围加上引号(必须是“双引号”),以及在格式字符串参数周围加上引号date(“双引号”或“单引号”都可以):

mkdir "$(date '+%Y-%m-%d %H%M')"

如果您不引用包含空格的参数(包括结果中可能包含空格的命令替换),它们将被 shell 进行分词,最终您会得到多个单独的参数而不是一个,这些参数将由命令以不同的方式解释。

“双”引号和“单”引号之间的主要区别在于,您仍然可以在双引号内进行变量扩展和命令替换,而单引号会阻止任何类型的评估并使 shell 按原样处理字符串。

相关内容