Generate a dummy file and folder structure
#!/bin/bash
#
# generate a dummy file and folder structure
#
# Args:
# $1 #layers to generate
# $2 #files
# $3 #folders
# process args
if [ -z "$3" ]; then
echo "[Error] Not enough arguments!"
exit 1
else
echo "[Debug] Will create $1 layers of folders."
echo "[Debug] There will be $2 files and $3 folders within each layer."
fi
# erase previous results
if [ -d "outer" ]; then
echo -n "**User Input** rm -rf \"outer\"? (y/n)"
read res
if [ "$res" == "y" ]; then
rm -rf "outer"
fi
fi
# create base directory
mkdir "outer"
cd "outer"
treegen() {
# Args:
# $1 #layers left
# $2 #files
# $3 #folders
echo "[DEBUG] Processing layer $1 (smaller=deeper)"
# recursive, terminate when $1 == 0
if (( $1 > 0 )); then
local layername
local filename
local dirname
local i
if (( $1 == 1 )); then
layername="innermost"
else
layername="inner$1"
fi
# create files
for (( i = 1; i <= $2; i++ )); do
filename="${layername}.file${i}"
echo "content of $filename" >> "$filename"
done
# create folder recursively
for (( i = 1; i <= $3; i++ )); do
dirname="${layername}-dir${i}"
mkdir "$dirname"
cd "$dirname"
treegen $(($1 - 1)) $2 $3
cd ..
done
fi
echo "[DEBUG] Exit layer $1"
}
treegen $1 $2 $3