Rev 4 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
#!/usr/bin/env bash# progname : filefind.bash# purpose : display a directory tree# similar to find# =============================================================================# Functions# =============================================================================Usage(){mesg="$1"echo "Usage : $progname directory"echo $mesg}## we need local vars to keep the value when called recursively#traverse(){local directory="$1"local curdir curdir2curdir=$(pwd)cd -- "$directory"curdir2=$(pwd)files=$(ls)for file in $filesdopfile=$curdir2/$file # file including pathif [ -d "$file" -a ! -L "$file" ]thenecho $pfiletraverse "$file"elseif [ -f $file -o -L $file ]thenecho "$pfile"elseecho "WARNING: Could not process file $pfile"fifidonecd -- "$curdir"}start_traverse(){directory=$1echo $directorytraverse $directory}# =============================================================================# MAIN# =============================================================================progname=$(basename $0)if [ $# -eq 1 ]thendirectory=$1if [ -d $directory ]thenstart_traverse $directoryelseUsage "ERROR: No directory $directory found"fielseUsage "ERRROR: 1 argument expected"fi