为什么我的文件夹名称中包含逗号?

我正在按照这个教程,它说要创build这样的文件夹:

mkdir -p /home/demo/public_html/domain2.com/{public,private,log,backup} 

当我这样做,我得到文件夹名称与},并在他们的名字的末尾。

那mkdir不适用于Ubuntu吗?

我以为这将创build大括号内的文件夹…

内联扩展语法特定于Bourne shell及其后代(sh,bash,ksh,zsh)。 看起来您的教程可能会期待您运行bash,而且您正在运行其他的东西(csh,tcsh?)

有些东西在你的shell中不起作用。 你使用bash吗? 您的命令应该一次创build括号中的所有文件夹,并且不包含括号。 尽量让他们一个一个

mkdir /home/demo/public_html/domain2.com/public

mkdir /home/demo/public_html/domain2.com/private

mkdir /home/demo/public_html/domain2.com/log

mkdir /home/demo/public_html/domain2.com/backup

这在CentOS 5.5上使用了bash 3.2.25和GNU mkdir 5.97。

评论者是正确的,因为bash会将参数分别传递给mkdir(假设你正在运行一个标准的bash shell并且你正确地指定了参数)。

尽pipe如此,我还是认为值得一提的是,如果你的系统有命令不能按预期工作,那么检查你是否正在运行相关命令的“正常”版本的程序是值得的。 我看到有些系统是用一些命令的非标准变体build立的,因为SA不喜欢标准版本,或者不希望用户有权访问标准版本的某些function。