小范围查找时使用find命令并不方便,可以自定义一个简单的查找命令
原文链接:https://www.cnblogs.com/yychuyu/p/12878089.html
先看简单效果:
[dev@localhost test]$ ls
abc.txt a.txt bak.txt next.txt test.txt
[dev@localhost test]$ lf a
./a.txt
./abc.txt
./bak.txt
实现步骤:
-
创建脚本 xxx.sh
#!/bin/sh # 搜索 function help_info { echo "" echo "--------------- lf命令使用说明 -----------------" echo "| 根据文件名称全局查找" echo "| lf [--match-case|--path] filename" echo "| 参数1:-m/--match 区分大小写,默认不区分" echo "| 参数2:-p/--path 指定搜索目录,默认当前文件夹" echo "-----------------------------------------------" echo "" exit } ## 设置变量 MATCH="-iname" ## 全局搜索, # SEARCH="/" ## 当前目录搜索 SEARCH="." ## 变量处理 while [ True ]; do if [ "$1" = "--help" -o "$1" = "-h" ]; then help_info 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 ## 接收变量 ARG=( "${@}" ) set -e ## 展示帮助信息 if [ "X$ARG" = "X" ]; then help_info fi ## 查找 for query in ${ARG[*]}; do /usr/bin/find "${SEARCH}" "${MATCH}" "*${ARG}*" done
-
给脚本添加执行权限
chmod +x xxx.sh
-
用最简单的定义别名方式,注册全局命令
# 编辑当前用户.bashrc,可进入用户目录通过 ls -a查看列表 vi ~/.bashrc # 在文件末尾添加别名,lf为别名,可改 alias lf=/脚本路径/xxx.sh # 保存并退出后,更新.bashrc source ~/.bashrc
-
使用命令