• SHELL用法六(Find语句)


    1、SHELL编程Find语句案例实战
    1)SHELL编程四剑客工具:Find、Grep、Sed、Awk,通过四剑客可以完成常规Linux指令无法完成或者比较复杂的功能,学好SHELL编程四剑客有助于SHELL编程能力再上一层楼。
    2)SHELL编程四剑客之一的Find工具,主要是用于Linux操作系统去查找某个文件和目录所在的位置的(绝对路径),Find工具的语法格式:
    find(工具) path(路径) -option(参数) -action(动作);
    find
    path
    -option
    [ -print ]
    [ -exec
    -ok
    command ]
     Path路径:给定find工具一个大概的范围,从哪个范围去查找;
     Option参数:按照某些特征:-name、-size、-mtime、-user;
     Action动作:找到文件或者目录之后执行的操作的动作(打印、执行);
    3)SHELL编程四剑客Find工具案例操作一,基于Find工具查找Linux系统下eth0网卡配置文件所在的路径。
    find / -name eth0
    find / -name ifcfg-eth0
    find / -name "*eth0"
    find /etc/ -name "*eth0"
    find /etc/sysconfig/network-scripts/ -name "*eth0"
    4)SHELL编程四剑客Find工具案例操作二,基于Find工具查找Linux系统下auto_mysql_backup.sh所在的路径。
    find / -name auto_mysql_backup.sh
    find / -name *mysql_backup*.sh
    5)SHELL编程四剑客Find工具案例操作三,基于Find工具查找Linux系统下以.rpm结尾的软件包,并且找到以mariadb命名开头的包,排除mariadb-libs包。
    find / -name "*.rpm"
    find / -name "mariadb*rpm"
    find / -name "*.rpm" -a -name "mariadb*"
    find / -name "*.rpm" -name "mariadb*" ! -name "mariadb-libs*"
    find / -name "*.rpm" -a -name "mariadb*" -a ! -name "mariadb-libs*
    6)SHELL编程四剑客Find工具案例操作四,基于Find工具查找Linux系统下以.rpm结尾的软件包,并且找到以mariadb命名开头的包,排除mariadb-libs包,并且将剩余软件包拷贝至/tmp/目录。
    for soft in `find / -name "*.rpm" -name "mariadb*" ! -name
    "mariadb-libs*"`;do cp $soft /tmp/;done
    cp `find / -name "*.rpm" -name "mariadb*" ! -name "mariadb-libs*"`
    /tmp/
    cp $(find / -name "*.rpm" -name "mariadb*" ! -name "mariadb-libs*")
    /tmp/
    find / -name "*.rpm" -name "mariadb*" ! -name "mariadb-libs*" -exec cp
    {} /tmp/ ;
    find / -name "*.rpm" -name "mariadb*" ! -name "mariadb-libs*"|xargs -I {}cp {} /tmp/
    7)SHELL编程四剑客Find工具案例操作五,查找/data/logs/目录大于10M并且小于30M的文件,以.log结尾,并且日志文件是3天以前的,并且将其移动至/data/backup/目录下。
    find /data/logs/ -size +10M -size -30M -type f -mtime +3 -name
    “*.log”-exec mv {} /data/backup/ ;
    8)SHELL编程四剑客Find工具案例操作六,查找当前目录,第一级目录深度的目录,排除隐藏文件,并且命名以a开头的,命令如下:
    find . -maxdepth 1 -type d ! -name ".*" -name "a*"
    2、SHELL编程Sed语句案例实战
    1)SHELL编程四剑客之二的Sed工具,主要是用于Linux系统文本文件的编辑、打印的,也称为非交互模式编辑器(vi|vim交互模式编辑器),Sed工具的语法格式:
    sed -option(参数) ‘Command’(命令) file(文件对象)
     Option参数:-i(修改)、-n(静默模式)、-e(扩展)、-l、-b、-c;
     Command命令:p(打印)、d(删除)、N(多行)、G、D;
    2)SHELL编程四剑客Sed工具案例操作一,基于Sed工具将list.txt文件中的用户名root改为jfedu,命令如下:
    sed s/jfedu/root/g list.txt
    sed 's#jfedu#root#g' list.txt
    sed -i 's#jfedu#root#g' list.txt
    sed -e '3s/2/100/g' -e '4s/3/100/g' list.txt
    sed '3s/2/100/g;4s/3/100/g' list.txt
    sed '3,$s/11/100/g' list.txt
  • 相关阅读:
    自写 jQuery 大幅弹窗广告插件(不喜勿拍)
    反省:一个失败的产品
    javascript变量:全局?还是局部?这个得注意!
    前端工作常常会用到的一些经验技巧(三)
    Jquery伪选择器学习笔记
    前端工作常常会用到的一些经验技巧(二)
    (总结)工作中常用的js自定义函数——日期时间类
    js 数组引用 发现的问题
    一位资深程序员大牛给予Java初学者的学习路线建议(转)
    正则表达式
  • 原文地址:https://www.cnblogs.com/nshgo/p/12157475.html
Copyright © 2020-2023  润新知