xfind.bash

来自「UNIX下SH的实现源码」· BASH 代码 · 共 53 行

BASH
53
字号
#! /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 = actionxfind(){	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" -a ! -L "$x" ] ; then 			$FUNCNAME "$x" "$2" "$action"		fi	done	# finally, pop back up	builtin cd -L ..}#xfind "$@"

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?