这些天我正在学习基本的终端命令。
我发现我可以通过在它们之间添加一个空格来制作并行目录:
mkdir dir_a dir_b
但是当我尝试在母目录下创建并行目录时,这会失败。
mkdir dir_a/dir_a_1 dir_a_2
# Failed, the dir_a_2 is on top level
有没有办法可以在母目录下创建并行子目录,而无需更改到母目录(没有cd方法)?
答案 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
其中任何一个都适合你。