我有一个名为1990的目录,我想使用for循环在其中创建12个子目录(每月一个)。另外,我希望每个子目录都以一个月命名(即1月,2月,3月...,而不是1、2、3 ...)。我也不知道应该在函数中使用哪种方式指定目录名称(即1990)。
这就是我的想法:
for i in 1990; do
mkdir {January..December}
done
我在这里的问题与目录本身以及括号扩展不接受名称有关。
注意:如果可以在此函数中创建目录1990,那么也可以。
答案 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