I needed to create a large directory structure for some testing. I hacked together this quick script that makes a small or large directory tree easily. You define how many branch points there are and how many branches each branch has all the way from the trunk to the leaves.
#!/bin/bash
i=0;
l=0;
levels=2
dirsperlevel=3
rm -rf tree
mkdir tree && cd tree
while [ $i -lt $levels ];
do
for j in `find . -mindepth $i -maxdepth $i -type d`
do
pushd $j > /dev/null 2>&1
for k in `seq 1 $dirsperlevel`;
do
mkdir $k;
done;
popd > /dev/null 2>&1
done;
i=$(($i+1))
l=`echo "($dirsperlevel^$i)+$l"|bc`
done;
echo "$l dirs created in ./tree"
using 2 levels, and 3 directories per level we get 12 total directories created like so:
# mktree.sh
12 dirs created in ./tree
# find tree
tree
tree/2
tree/2/2
tree/2/3
tree/2/1
tree/3
tree/3/2
tree/3/3
tree/3/1
tree/1
tree/1/2
tree/1/3
tree/1/1
using something like 6 levels and 6 directories per level would give us 55,986 total directories.