在bash中创建目录的标题?

Chr*_*ian 7 linux bash shell ubuntu-11.04

我想/home/chris/Downloads通过使用mkdir和将当前日期转换为目录的标题date -I

我试过mkdir"date -I",它给我一个名为 "date -I" 的文件夹,没有引号就给出了错误

mkdir: invalid option -- 'I'
Run Code Online (Sandbox Code Playgroud)

试着让它成为下一个变量

date= date -I
mkdir -p $date
Run Code Online (Sandbox Code Playgroud)

使用该-p选项,它看起来不错,但在检查时,没有创建该文件夹.删除-p让我错误

mkdir: cannot create directory `/home/chris/Downloads/': File exists
Run Code Online (Sandbox Code Playgroud)

甚至指向整个路径

date= date -I
mkdir "/home/chris/Downloads/$date"
Run Code Online (Sandbox Code Playgroud)

给我带来了和以前一样的错误

这不是变量是空的,我回应它并且值是我应该期望的,似乎是在创建目录之前没有替换该值.解决这个问题的方法是什么?我正在运行Ubuntu 11.04(Natty Narwhal),如果它能为您提供更多信息.

Tho*_*ger 12

你的语法错了:

mkdir -p /home/chris/downloads/$(date -I)
Run Code Online (Sandbox Code Playgroud)

要么

mkdir -p /home/chris/downloads/`date -I`
Run Code Online (Sandbox Code Playgroud)

将工作

  • +1.虽然作为一种习惯,我建议在shell变量扩展周围加上引号:`mkdir -p/tmp /"$(date -I)"`.对于'date`来说,无关紧要,但对于其他命令,它可以.`mkdir -p/tmp/$(echo foo bar)`不会做你所期望的. (3认同)