这是执行 bash 脚本时的示例输出 -->https://i.stack.imgur.com/KfUBk.jpg。
我的问题是我们如何制作这个或者我可以使用什么代码?
答案1
for dir in a a/b a/b/c a/b/c/d; do
mkdir "$dir" && touch "$dir/${dir##*/}"{1..100}
done
也就是说,循环遍历我们要创建的目录名称,对于每个目录:
- 创建它,并且
- 在其中创建空文件。
${dir##*/}
将扩展为 中目录的基本名称$dir
,例如扩展为c
if $dir
is a/b/c
。大括号扩展something{1..100}
将扩展为something1 something2 ... something100
.
更容易扩展到任意深度的变体:
dir=''
for dirname in a b c d; do
dir="${dir:-.}/$dirname"
mkdir "$dir" && touch "$dir/${dir##*/}"{1..100}
done
在这里,${dir:-.}
将被替换为.
if$dir
未设置或为空,它将在第一次迭代中出现。这意味着$dir
将被构建为第一个./a
,然后./a/b
等等。
如果您想要更多子目录,例如一直到z
:
dir=''
for dirname in {a..z}; do
dir="${dir:-.}/$dirname"
mkdir "$dir" && touch "$dir/${dir##*/}"{1..100}
done