我可以在母目录下创建并行子目录而无需更改到该母目录吗?

时间:2014-02-26 11:33:30

标签: terminal

这些天我正在学习基本的终端命令。

我发现我可以通过在它们之间添加一个空格来制作并行目录:

mkdir dir_a dir_b

但是当我尝试在母目录下创建并行目录时,这会失败。

mkdir dir_a/dir_a_1 dir_a_2   
# Failed, the dir_a_2 is on top level

有没有办法可以在母目录下创建并行子目录,而无需更改到母目录(没有cd方法)?

1 个答案:

答案 0 :(得分:0)

mkdir的每个参数都以当前目录为根。你所看到的行为是故意的。对mkdir的第一个参数没有特殊处理。

但是,有几个选项可用于实现您正在寻找的结果。

您可以使用循环:

for f in dir_a_1 dir_a_2; do mkdir -p "dir_a/$f"; done

您可以使用pushd

mkdir dir_a; pushd dir_a; mkdir dir_a_1 dir_a_2; popd

您可以使用printf和命令替换:

mkdir -p  $(printf 'dir_a/%s ' dir_a_1 dir_a_2)

您可以使用printf和xargs:

printf 'dir_a/%s ' dir_a_1 dir_a_2 | xargs mkdir -p

其中任何一个都适合你。