在Linux中自定义一个简短的搜索命令

小范围查找时使用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
实现步骤:
  1. 创建脚本 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
    
    
  2. 给脚本添加执行权限

    chmod +x xxx.sh
    
  3. 用最简单的定义别名方式,注册全局命令

    # 编辑当前用户.bashrc,可进入用户目录通过 ls -a查看列表
    vi ~/.bashrc
    
    # 在文件末尾添加别名,lf为别名,可改
    alias lf=/脚本路径/xxx.sh
    
    # 保存并退出后,更新.bashrc
    source ~/.bashrc
    
  4. 使用命令

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值