Linux find与grep命令 包含组合命令

一. find 指令 (查找文件)

1. (按照文件名搜索)
  • 语法: find 搜索路径 -name “文件名关键词”
    备注:搜索 /usr/local 目录中的 start.sh    
	[root@localhost local]# find /usr/local -name start.sh
	/usr/local/start.sh
  • find -name (根据文件名称) 进行根目录全盘检索 start.sh文件 比较慢 最好指定文件目录
[root@localhost local]# find / -name start.sh
  • find -iname 搜索根目录中的 start.sh,(不区分文件名大小)
[root@localhost local]# find / -iname Start.sh
/usr/local/start.sh
  • find -inum (按照 inode 号) 搜索。通过ls -i 可以查看文件inode号 唯一的
[root@localhost /]# find -inum 33835682
./usr/local/start.sh
1.1 (指定文件类型搜索)

-type 类型

  • f:一般文件

  • d:目录文件

  • c:字符设备文件

  • b:块设备文件

  • p:管道文件

  • l :符号链接

  • s:套接字

  • 譬如 搜索start开头的 字符设备文件

[root@localhost /]# find / -name start* -type c
2. (按照文件大小搜索)
  • v-size[+ | -]n:按照指定大小搜索文件,查找大小大于 +n、小于 -n 或等于 n 的文件。n 代表 512 字节大小的数据块个数。 (默认的单位是K)
  • find / -size +30000000 搜索根目录文件 (大于) 30000000K的文件
[root@localhost /]# find / -size +30000000 
./proc/kcore
  • find / -size -30000000 搜索根目录文件 (小于) 30000000K的文件 备注:太多不列举
[root@localhost /]# find / -size -30000000 
2.1 ( 指定文件单位搜索)
  • b : 块(512Byte)

  • c :Byte

  • w : 字(2Byte)

  • k :KB

  • M :MB

  • G :GB

  • 譬如 在/usr/local查询以start开头大小大于3000字节的一般文件

[root@localhost /]# find /usr/local -name "start*"  -type f -size -3000c 
/usr/local/start.sh
3 (按照文件修改时间搜索)
  • 修改时间(-mtime(24小时),-mmin(分钟)):文件最后一次修改时间。

  • 变化时间(-ctime(24小时),-cmin(分钟)):文件数据元(例如权限等)最后一
    次修改时间。

  • 访问时间(-atime(24小时),-amin(分钟)):用户最近一次访问时间。

  • find -mtime -1 (一天内修改过的文件) 比如当前时间是2022-04-22 14:00:00,那么 find -mtime -1只能查询到修改时间为[2022-04-21 14:00:00-2022-04-22 14:00:00]的文件
[root@localhost /]# find -mtime -1
  • find -mtime 1 (修改时间早于用当前时间) -24小时之前的24小时文件,比如当前时间是2022-04-22 14:00:00,那么find -mtime 1只能查询到修改时间为[2022-04-20 14:00:00到2022-04-21 14:00:00]的文件
[root@localhost /]# find -mtime 1
  • -mtime +1 (一天前修改过的文件) 比如当前时间是2022-04-22 14:00:00,那么-mtime +1只能查询到修改时间为2022-04-20 13:59:59之前的文件。
[root@localhost /]# find -mtime +1

备注:变化时间和访问时间同样适用上述时间条件 一般会根据文件进行时间筛选


二. grep (文件内容查找)

  • -v:显示不匹配的文本(排查符合的行)

  • -i:不区分大小写

  • -n:显示匹配行及行号

  • -c:显示匹配的行数

  • -o:只输出匹配的内容

  • -w:精确匹配过滤的字符串

  • grep “echo” /usr/local/start.sh 输出指定目录start.sh文件中 (包含echo的行)
[root@localhost /]# grep "echo" /usr/local/start.sh  
echo "Usage: sh start.sh[start|stop|restart|status]"
#echo "${APP_NAME} is already running.pid=${pid} ."
echo "${APP_NAME} start success"
  • grep -v “echo” /usr/local/start.sh 输出指定目录start.sh文件中 (不包含echo的行)
[root@localhost /]# grep -v "echo" /usr/local/start.sh  
  • grep -n “echo” /usr/local/start.sh 输出指定目录start.sh文件中 (包含echo的行及行号)
[root@localhost /]# grep -n "echo" /usr/local/start.sh
7:echo "Usage: sh start.sh[start|stop|restart|status]"
26:#echo "${APP_NAME} is already running.pid=${pid} ."
29:echo "${APP_NAME} start success"
  • grep -c “echo” /usr/local/start.sh 输出指定目录start.sh文件中 (匹配echo字符串的数量)
[root@localhost /]# grep -c "echo" /usr/local/start.sh 
3
  • grep -o “echo” /usr/local/start.sh 输出指定目录start.sh文件中 (只输出匹配的内容echo)
[root@localhost /]# grep -o "echo" /usr/local/start.sh
echo
echo
echo
  • grep -w “echo” /usr/local/start.sh 输出指定目录start.sh文件中 (匹配echo这个单词的行)
[root@localhost /]#  grep -w "echo" /usr/local/start.sh
echo "Usage: sh start.sh[start|stop|restart|status]"
#echo "${APP_NAME} is already running.pid=${pid} ."
echo "${APP_NAME} start success"

三. find与grep组合使用 (查找文件中的内容)

  • 从/usr/local目录 开始查找所有扩展名为 …sh 的文本文件,并找出包含 “echo” 的行
[root@localhost /]# find /usr/local -type f -name "*.sh" | xargs grep "echo"
  • 查找/usr/local目录中所有".sh"文件中的含有"echo"字符串的文件
[root@localhost /]# find /usr/local -name "*.sh" | xargs grep -in "echo"
  • 查找/usr/local所有".sh"和".log"文件中的含有"echo"字符串的文件
[root@localhost /]# find /usr/local \( -name "*.sh" -or -name "*.log" \) -exec grep -lnr "echo" {} \;
  • 查找/usr/local目录中非备份文件的含有"echo"字符串的文件
[root@localhost /]# find /usr/local \( -not -name "*~" \) -exec grep -in "echo" {} \;

这里是我写的Linux 命令大全 有兴趣可以参考一下~~~
Linux 命令大全 (全网最详细)

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只可爱的委屈翁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值