目次 †
treeの代替 †
mytree(){
indent=$1
dir=$2
if [ $# -lt 2 ]; then
indent=0
dir=$1
else
shift
fi
if [ "$dir" == "" ]; then
dir=`pwd`
fi
num=0
dirs_indent=""
files_indent=" "
while [ $num -lt $indent ]; do
files_indent=" $files_indent"
dirs_indent=" $dirs_indent"
num=`expr $num + 1`
done
while [ "$dir" != "" ]; do
if [ $indent -eq 0 ]; then
echo "$dir"
else
echo "$dirs_indent"`basename $dir`
fi
dirs=`ls -l $dir | grep -E "^d" | sed -E 's/^.+ +//g' | awk -v dir=$dir '{print dir"/"$1}'`
files="`ls -l $dir | awk 'NF > 2{ print }' | grep -E "^-" | sed -E 's/^.+ +//g'`"
if [ "$files" != "" ]; then
echo "$files" | awk -v indent="$files_indent" '{print indent$1}'
fi
if [ "$dirs" != "" ]; then
mytree `expr $indent + 1` $dirs
fi
shift
dir=$1
done
}