Terminal 我可以在不更改母目录的情况下在母目录下创建并行子目录吗?

Terminal 我可以在不更改母目录的情况下在母目录下创建并行子目录吗?,terminal,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方法)在母目录下创建并行子目录?mkdir的每个参数都以当前目录为根。你看到的行为是故意的。对mkdir的第一个参数没有特殊处理 但是

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

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

mkdir dir_a dir_b
但当我试图在一个母目录下创建并行目录时,这失败了

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

是否有一种方法可以在不更改母目录的情况下(不使用cd方法)在母目录下创建并行子目录?

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

所有这些都应该适合你。

在我的ubuntu系统上运行得非常好!你有什么问题?你能清楚地解释一下你想要什么目录结构吗?第二个目录不在目录下。显然它不在
dir\u a
下,因此你必须使用
mkdir dir\u a/dir\u a\u 1 dir\u a/dir\u a\u 2
。当您使用
mkdir test
时,shell将其解释为
mkdir./test
,因此目录将仅在当前目录中创建!我知道我可以这样做,你知道一种方法吗?我不需要两次键入dir_a来同时创建两个子目录?在这种情况下,最好的方法是
cd
到该目录,然后创建子目录!