文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Shell查找命令find和grep如何使用

2023-07-05 15:34

关注

本文小编为大家详细介绍“Shell查找命令find和grep如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Shell查找命令find和grep如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

第一节 文件查找之find命令

语法格式:find [路径] [选项] [操作]

Shell查找命令find和grep如何使用

常用选项

# - name 查找/etc目录下以conf结尾的文件 区分大小写find /etc -name '*conf'# -iname 查找当前目录下文件名为aa的文件,不区分大小写 find . -iname aa# -user 查找文件属主为hdfs的所有文件find . -user hdfs# -group 查找文件属组为yarn的所有文件find . -group yarn# -type# f 文件 find . -type f# d 目录 find . -type d# c 字符设备文件 find . -type c# b 块设备文件 find . -type b# l 链接文件 find . -type 1# 管道文件 find . -type p# -size# -n 大小小于n的文件# +n 大小大于n的文件# n 大小等于n的文件# 例子1:查找/etc目录下小于1000字节的文件find /etc -size -10000c# 例子2:查找/etc目录下大于1M的文件find /etc -size +1M# -mtime# -n天以内修改的文件# +n n天以外修改的文件# n 正好n天修改的文件# 例子1:查找/etc目录下5天之内修改且以conf结尾的文件 find /etc -mtime -5 -name '*.conf'# 例子2:查找/etc目录下10天之前修改且属主为root的文件find /etc -mtime +10 -user root # -mmin # -n n分钟以内修改的文件# +n n分钟以外修改的文件# 例子1:查找/etc目录下30分钟之前修改的文件find /etc -mmin +30# 例子2:查找/etc目录下30分钟之内修改的目录find /etc -mnin -30 -type d# -mindepth n 表示从n级子目录开始搜索# 例子:在/etc下的3级子目录开始搜索find /etc -mindepth 3# -maxdepth n 表示最多搜索到n-1级子目录# 例子1:在/etc下搜索符合条件的文件,但最多搜索到2级子目录find /etc -maxdepth 3 -name '*.conf'# 例子2:find ./etc/ -type f -name '*.conf' -size +10k -maxdepth 2

了解选项

# -nouser 查找没有属主的用户find . -type f -nouser# -nogroup 查找没有属组的用户find . -type f -nogroup# -perm 根据权限查找find . -perm 664# -prune 通常和-path一起使用,用于将特定目录排除在搜索条件之外# 例子1:查找当前目录下所有普通文件,但排除etc目录find . -path ./etc -prune -o -type f# 例子2:查找当前目录下所有普通文件,但排除etc和opt目录find . -path ./etc -prune -o -path ./opt -prune -o -type f# 例子3:查找当前目录下所有普通文件,但排除etc和opt目录,但属主为hdfsfind . -path ./etc -prune -o -path ./opt -prune -o type f -a -user hdfs# 例子4:查找当前目录下所有普通文件,但排除etc和opt目录,但属主为hdfs,且文件大小必须大于500字find . -path ./etc -prune -o -path ./opt -prune -o -type f -a -user hdfs -a -size +500c# -newer file1 比file1新的文件find /etc -newer a

对查找到的文件操作

# -print 打印输出# -exec 对搜索到的文件执行特定的操作,格式为-exec 'command'{} \; # {} 表示前面搜索到的结果 固定写法{} \# 例子1:搜索/etc下的文件(非目录),文件名以conf结尾且大于10k,然后将其删除find ./etc/ -type f -name '*.conf' -size +10k -exec rm -f {} \;# 例子2:将/var/1og/目录下以1og结尾的文件,且更改时间在7天以上的删除find /var/log/ -name '*.1og' -mtime +7 -exec rm -rf {} \;# 例子3:搜索条件和例子1一样,只是不删除,而是将其复制到/root/conf目录下find ./etc/ -size +10k -type f -name '*.conf' -exec cp {} /root/conf/ \;# -ok 和exec功能一样,只是每次操作都会给用户提示# 逻辑运算符:# -a 与# -o 或# -not|! 非# 例子1:查找当前目录下,属主不是hdfs的所有文件find . -not -user hdfs | find .! -user hdfs# 例子2:查找当前目录下,属主属于hdfs,且大小大于300字节的文件find . -type f -a -user hdfs -a -size +300c# 例子3:查找当前目录下的属主为hdfs或者以xm1结尾的普通文件find . -type f -a \( -user hdfs -o -name '*.xml')

第二节 find、locate、whereis和which总结

locate命令介绍:

通过updatedb命令及时更新locate命令的数据库,做到及时查到,否则就要等到它自动归档到数据库中。

yum -y install mlocate# 用户更新/var/lib/mlocate/mlocate.db# 所使用配置文件/etc/updatedb.conf# 该命令在后台cron计划任务中定期执行updatedb # 会遍历整个文件系统 会比较慢locate my.cnf

whereis

whereis mysqlwhereis -b mysqlwhereis -m mysql

which 作用∶仅查找二进制程序文件

-b 只返回二进制文件

which mysql

Shell查找命令find和grep如何使用

第三节 grep和egrep

第一种形式: grep [option] [pattern] [file1,file2...]

第二种形式:command \ grep [option] [pattern]

Shell查找命令find和grep如何使用

# 必须掌握的选项:# -v 最示不匹配pattern的行 排除包含字符的内容# -i 搜索时忽略大小写# -n 显示行号# -E 支持扩展的正则表达式# -F 不支持正则表达式,按字符串的字面意思进行匹配# -r 递归搜索# filei love python.lovelove python loveloveLOVE PYTHONLove pYtHoNgrep python file # file文件包含python的行grep -v python file # file文件不包括python的文件grep -iv python file # file文件不包括python的文件 忽略大小写grep -n python file # file文件包含python的行 并显示行号# 下面的|就是拓展正则表达式grep "python | PYTHON" file grep -E "python | PYTHON" file # -F 不支持正则表达式,按字符串的字面意思进行匹配grep "py.*" filegrep -F "py.*" file# 需了解的选项:# -c 只输出匹配行的数量,不显示具体内容# -w 匹配整词# -x 匹配整行# -l 只列出匹配的文件名,不显示具体匹配行内容grep -c python filegrep -w love filegrep -x "i love python" file

grep和egrep:

读到这里,这篇“Shell查找命令find和grep如何使用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯