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 ]
|