2015-09-06 52 views
1

我正在使用mkdir在FreeBSD 10.2下创建目录。我知道-p选项使我能够非常容易地创建一个/ b/c(mkdir -p a/b/c)。现在我想要一个有两个儿子目录b和c(a/c,a/b)。是否有可能通过仅使用一个mkdir命令来完成该操作?我寻觅了网,发现:如何在FreeBSD中使用mkdir创建多个子目录?

mkdir -p project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a} 

号称产生以下结果:

project/ 
project/lib/ext 
project/bin 
project/src 
project/doc/html 
project/doc/info 
project/doc/pdf 
project/demo/stat/a 

然而,这并不在FreeBSD下工作。任何人都可以解释?谢谢

+0

我相信大括号的扩展是shell的责任。您需要调查您正在使用的外壳,或切换到您找到的示例中使用的同一个外壳。 –

回答

1

使用默认的tcsh shell在这里工作正常(FreeBSD 10.2-STABLE amd64);

> mkdir -p project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a} 
> find . 
. 
./project 
./project/lib 
./project/lib/ext 
./project/bin 
./project/src 
./project/doc 
./project/doc/html 
./project/doc/info 
./project/doc/pdf 
./project/demo 
./project/demo/stat 
./project/demo/stat/a 

它确实在Bourne shell中,sh工作。

+0

是的,没错。这是shell的问题。 – PPJack