48 lines
602 B
Bash
48 lines
602 B
Bash
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
files=10
|
|
folders=2
|
|
depth=4
|
|
target="$PWD/target"
|
|
|
|
rm -rf target
|
|
|
|
fill () {
|
|
local depth=$1
|
|
local files=$2
|
|
local folders=$3
|
|
local target=$4
|
|
|
|
if ! [ -d $target ]; then
|
|
mkdir -p $target
|
|
fi
|
|
|
|
local f
|
|
|
|
f=$files
|
|
while [ $f -gt 0 ]; do
|
|
touch "$target/f-$depth-$f"
|
|
let f--
|
|
done
|
|
|
|
let depth--
|
|
|
|
if [ $depth -le 0 ]; then
|
|
return 0
|
|
fi
|
|
|
|
f=$folders
|
|
while [ $f -gt 0 ]; do
|
|
mkdir "$target/folder-$depth-$f"
|
|
fill $depth $files $folders "$target/d-$depth-$f"
|
|
let f--
|
|
done
|
|
}
|
|
|
|
fill $depth $files $folders $target
|
|
|
|
# sanity assert
|
|
[ -d $target ]
|