Current Path : /compat/linux/proc/68247/root/compat/linux/proc/68247/root/compat/linux/usr/share/doc/bash-3.2/functions/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //compat/linux/proc/68247/root/compat/linux/proc/68247/root/compat/linux/usr/share/doc/bash-3.2/functions/xfind.bash |
#! /bin/bash #From: kaz@cafe.net (Kaz Kylheku) #Newsgroups: comp.unix.shell #Subject: Why not roll your own @#$% find! (was: splitting directory off from filename) #Message-ID: <6n1117$tp1@espresso.cafe.net> #Date: Fri, 26 Jun 1998 20:47:34 GMT # $1 = dirname, $2 = pattern, optional $3 = action xfind() { local x local dir="$1" # descend into specified directory builtin cd -L "$1" || { echo "${FUNCNAME}: cannot change dir to $1" >&2 return 1 } # # default action is to print the filename # if [ -n "$3" ]; then action="$3" else action='printf -- "%s\n"' fi # process ordinary files that match pattern for x in $2 ; do if [ -f "$x" ] ; then eval "$action" "$x" fi done # now descend into subdirectories, avoiding symbolic links # and directories that start with a period. for x in * ; do if [ -d "$x" ] && [ ! -L "$x" ] ; then $FUNCNAME "$x" "$2" "$action" fi done # finally, pop back up builtin cd -L .. } #xfind "$@"