一个父目录有多个目录,例如:
$ cd parent
$ ls
ALA_31_C ALA_31_D ALA_31_G ALA_31_L
我想在每个子目录中创建同名目录,如下所示:
$ cd parent
$ ls
ALA_31_C ALA_31_D ALA_31_G ALA_31_L
$ cd ALA_31_C
$ ls
ALA_31_C
类似地,我需要为所有剩余的目录创建它:ALA_31_D
,ALA_31_G
并ALA_31_L
从父目录创建。
答案1
一个简单的 Bourne shell 脚本就可以完成此操作:
#!/bin/sh
for dir_name in */ ; do
echo "$dir_name"
mkdir "$dir_name/$dir_name"
done
仅循环遍历目录(*/
),并为每个目录创建一个与父目录同名的子目录(mkdir "$dir_name/$dir_name"
)。
这只适用于一个级别 - 它不是递归的 - 这可能无论如何都是你想要的。
有关更多示例,请参阅如何在 bash 中循环遍历目录?
答案2
我知道我有点晚了,但是奥卡姆是对的(最简单的解决方案......):
mkdir -p ~/folder/{child1,child2,child3,child4}
得出以下结果:
user@computer:~/folder/$ ls -a
. .. child1 child2 child3 child4
文件夹不嵌套,但所有文件夹都是父文件夹的子文件夹!