Bash使用两个列表创建目录/子目录

时间:2018-04-19 20:17:57

标签: linux bash shell

我想创建一些目录,每个目录都有一些基于两个使用Bash的列表的子目录。目前,以下代码实现了这一结果:

 mkdir -p {P01DH,P02DL,P03NH,P04NL,P05RH,P06RL}/{folder1,folder2,folder3,folder4,folder5,folder6,folder7,folder8}

产量

P01DH/folder1
P01DH/folder2 
...
P06RL/folder8

问题:是否有更简洁的(非单行)方式来实现相同的结果,可能将两个列表存储为数组或变量并使用循环?

2 个答案:

答案 0 :(得分:0)

使用嵌套循环:

for parent in P01DH P02DL P03NH P04NL P05RH P06RL; do
    for child in folder{1..8}; do
        mkdir -p "$parent/$child"
    done
done

答案 1 :(得分:0)

谢谢大家!结合上面的@ karakfa和@ Barmar的解决方案(并添加了在循环中执行其他步骤的能力),我得到以下结果:

for parent in P0{1DH,2DL,3NH,4NL,5RH,6RL}; do
    for child in folder{1..8}; do
        mkdir -p "$parent/$child"
        cp myfile.py "$parent/$child"
        #do other tasks
    done
done