使用 bash 创建目录和子目录?

使用 bash 创建目录和子目录?

这是执行 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

也就是说,循环遍历我们要创建的目录名称,对于每个目录:

  1. 创建它,并且
  2. 在其中创建空文件。

${dir##*/}将扩展为 中目录的基本名称$dir,例如扩展为cif $diris 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

相关内容