创建脚本
用 vim 或者 gedit 都可以,我这里习惯用 gedit 在终端输入如下命令, find_file_path是文件名,可以任意修改,但是要记住
gedit find_file_path.sh
脚本的创建路径随意,但是要记住。
编辑脚本
在 gedit (或者 vim)打开的脚本界面输入以下代码:
# find file path
# use: bash ./find_file_path.sh [-- option] file_name
# GNU All-Permissive License
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved. This file is offered as-is,
# without any warranty.
## help function
function helpu {
echo " "
echo "Fuzzy search for filename."
echo "$0 [--match-case|--path] filename"
echo " "
exit
}
## set variables
MATCH="-iname"
SEARCH="."
## parse options
while [ True ]; do
if [ "$1" = "--help" -o "$1" = "-h" ]; then
helpu
elif [ "$1" = "--match-case" -o "$1" = "-m" ]; then
MATCH="-name"
shift 1
elif [ "$1" = "--path" -o "$1" = "-p" ]; then
SEARCH="${2}"
shift 2
else
break
fi
done
## sanitize input filenames
## create array, retain spaces
ARG=( "${@}" )
set -e
## catch obvious input error
if [ "X$ARG" = "X" ]; then
helpu
fi
## perform search
for query in ${ARG[*]}; do
/usr/bin/find "${SEARCH}" "${MATCH}" "*${ARG}*"
done
保存即可。
给予脚本权限
chmod +x find_file_path.sh
是 +x 不是 777 之类的
使用方法
在脚本的路径下打开终端, 用bash运行
bash ./find_file_path.sh [--option] file_name
option 的选项有
- –path 用于指定路径,缩写 -p
- –help 查看帮助,缩写 -h
- –match-case 严格大小写,缩写 -m
如果想在全局搜索,则可以这样搜索
bash ./find_file_path.sh -p ~ file_name
file_name是文件名。可以是不完整的,比如想要找一个名为 everything.py 的文件,可以搜索
bash ./find_file_path.sh -p ~ eve
那么只要本机上含有 “eve”、“Eve”、“EVE”,……的文件都会被检索出来,如果想禁用大小写就加个-m选项。
|