区别:

  • find基本上相当于 linux下的 “搜索” , 相当于windows下的搜索功能! 它是用来搜索文件的。
  • grep是用来搜索文本的, 用来在standard input或文件内部的内容中, 来搜索文字 内容的!
  • find 是完全匹配(通配符),而grep是包含匹配(正则表达式)

find命令:

基本格式:find path expression

选项说明
-name<文件名>匹配文件名称
-user<用户名>匹配文件的所有者
-perm<权限>匹配文件的权限
-type<文件类型>匹配文件类型查找
-size n[ckmg]匹配文件的大小(+50k表示超过50k的文件)
-exec { } \后面可直接对搜索到的结果进一步处理的命令
!所有
-and(-a)并且
-or(-o)或者

例题

按文件名称
  1. 在/etc目录下查找文件 aaa.conf
    find /etc -name aaa.conf

  2. 查找/etc目录下以名字中包含“conf”的文件
    find /etc -name "*conf*" -type f

  3. 在当前目录下查找文件名含有字符串‘conf’的文件
    find . -name '*conf*'

按文件特征查找
  1. 查找在系统中最后10分钟访问的文件 (access time)
    find / -amin -10
  2. 查找在系统中最后48小时访问的文件
    find / -atime -2
  3. 查找在系统中为空的文件或者文件夹
    find / -empty
  4. 查找在系统中属于 group为cat的文件
    find / -group cat
  5. 查找在系统中最后5分钟里修改过的文件 (modify time)
    find / -mmin -5
  6. 查找在系统中最后24小时里修改过的普通文件,并删除
    find / -mtime -1 -exec rm { } \
  7. 查找在系统中属于fred这个用户的文件
    find / -user fred
  8. 查找出大于10000000字节的文件 (c:字节,w:双字,k:KB,M:MB,G:GB)
    find / -size +10000c
  9. 查找出大于1000KB,并且小于10MB的文件
    find / -size +1000k -a -size -10M
混合查找文件
  1. 在/tmp目录下查找大于10000字节并在最后2分钟内修改的文件
    find /tmp -size +10000c -and -mtime +2
  2. 在/目录下查找用户是fred或者george的文件文件
    find / -user fred -or -user george
  3. 在/tmp目录中查找所有不属于panda用户的文件
    find /tmp ! -user panda

grep命令:

选项说明
-c只输出匹配行的计数。
-i不区分大小写
-h查询多文件时不显示文件名。
-l查询多文件时只输出包含匹配字符的文件名。
-n显示匹配行及行号。
-s不显示不存在或无匹配文本的错误信息。
-v反转查找,显示不包含匹配文本的所有行。

例题

  1. 将/etc/passwd,有出现 root 的行取出来,同时显示这些行在/etc/passwd的行号
    grep -n root /etc/passwd
  2. 显示所有以d开头的文件中包含 test的行
    grep 'test' d*
  3. 显示在aa,bb,cc文件中包含test的行
    grep ‘test’ aa bb cc
  4. 显示所有包含每行字符串至少有5个连续小写字符的字符串的行
    grep ‘[a-z]\{5\}’ aa
  5. 显示/usr/src目录下的文件(不含子目录)包含magic的行
    grep magic /usr/src
  6. 显示/usr/src目录下的文件(包含子目录)包含magic的行
    grep -r magic /usr/src
  7. 只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’)
    grep -w pattern files
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐