从父目录创建子目录

从父目录创建子目录

一个父目录有多个目录,例如:

$ 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_DALA_31_GALA_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

文件夹不嵌套,但所有文件夹都是父文件夹的子文件夹!

相关内容