将顺序子目录添加到顺序目录

时间:2014-09-22 17:52:45

标签: bash loops subdirectory sequential

我需要将子目录添加到多个目录。到目前为止,我有一个像狗[11-20] - [A-L]的结构,我想要一个看起来像狗[11-20] - [A-L] -1的子目录。我想尝试用尽可能少的命令来完成这个。我使用find命令和管道的努力没有奏效。所以例如dog11-A我想要一个名为dog11-A-1的子目录,而对于dog15-B我想要一个子目录dog15-B-1。

1 个答案:

答案 0 :(得分:3)

for d in dog{11..20}-{A..L}; do
    mkdir -p "$d/$d-1"
done

如有必要,这也将创建父母。您还可以在数组中构建所需的名称,并将其传递给mkdir的单个调用。如果

for d in {11..20}; do
    for suffix in {A..L}; do
        base=dog$d-$suffix
        dirs+=("$base/$base-1")
    done
done
mkdir -p "${dirs[@]}"

如果这给你一个“太多参数”错误,你可以进行更多的聚合调用:

for d in {11..20}; do
    dirs=()
    for suffix in {A..L}; do
        base=dog$d-$suffix
        dirs+=("$base/$base-1")
    done
    mkdir -p "${dirs[@]}"
done