使用for循环创建几个子目录

时间:2018-09-24 19:31:42

标签: bash

我有一个名为1990的目录,我想使用for循环在其中创建12个子目录(每月一个)。另外,我希望每个子目录都以一个月命名(即1月,2月,3月...,而不是1、2、3 ...)。我也不知道应该在函数中使用哪种方式指定目录名称(即1990)。

这就是我的想法:

for i in 1990; do
    mkdir {January..December}
done

我在这里的问题与目录本身以及括号扩展不接受名称有关。

注意:如果可以在此函数中创建目录1990,那么也可以。

1 个答案:

答案 0 :(得分:1)

for m in {1..12}; do date -d "1990-$m-01" "+%Y/%B"; done | xargs mkdir -p

带范围的括号扩展仅适用于整数。您必须列出所有月份名称:

mkdir -p 1990/{January,February,March,April,May,June,July,August,September,October,November,December}

您还可以获取日期以吐出命令并将其插入外壳:

for m in {1..12}; do date -d "1990-$m-01" "+mkdir -p %Y/%B"; done | sh