Linux系统学习---文件查找和文件内容搜索(二)

文件查找

whereis 查找命令

在特定的目录内查找文件,速度比find快,但是没有查找到全部文件
格式 whereis [ -bmsu] 文件或目录

-l 列出whereis会查询的几个主要目录
-b 只找二进制格式的文件
-m 只找说明文件manual路径下 文件
-s 只找source 源文件
-u 查找不在上述三个项目中的其他文件


which查找命令

根据PATH环境变量的路径去找执行文件的名
格式 which [ -a ] 命令名
-a 将PATH目录中所有找到的结果都列出来,默认是只列出找到的第一个的

在centos下 可以查看别名,但在ubuntu下不行


查找文件 locate / updatedb

locate 不会去直接搜索磁盘,而是在系统数据库中查找文件,所以比较快速
数据库文件位置:/var/lib/mlocate/内
数据库默认是每天执行一次(不同版本不一样),如果新获取的文件后面收录进去,搜索不到
手动更新locate的数据库:updatedb

格式 :locate [ 选项 ] 文件名

-i 忽略大小写的差异
-c 不输出文件名,只计算文件的数量
-l 仅输出几行,若输出五行 则 -l 5
-s 输出locate所使用的数据库文件相关信息,包括记录的文件和目录数量
-r 后面接正则表达式的显示方式


查找文件find

查找文件,在磁盘中查找,比较万能,但是速度较慢
格式 : find [ PATH ] [ option ] [ation]
find 路径 选项 参数
默认连同子目录一起搜索的,比较耗磁盘资源

不写路径时,默认在当前路径下找

1、与时间有关的选项

共有-atime、-ctime、mtime,以-mtime说明

      -mtime  n : n为数字,意义为  n天之前的一天之内 修改过的文件
      -mtime  +n : 列出在n天之前(不包含第n天 ) 修改过的文件
      -mtime  -n  : 列出在n天之内(含第n天)修改过的文件
      -newer   [ 一个存在的文件名]  :列出比这个文件还要新的文件

举例 :
查找/etc 下面的文件,一天内修改过的文件

find /etc  -mtime 0      #第0天之前,一天内,,,也就是今天

查找/etc 下面的文件,比passwd还新的文件

find /etc -newer /etc/passwd

2、与用户和用户组有关的参数

-uid  n     n为数字,是使用者的id ,就是uid,记录在pswwd里面
   -gid  n     n为数字,是用户组的id ,就是gid,记录在group里面
   -user  【name】   使用者的名称
   -group  【name】   用户组的名称
  -nouser       查找拥有者不在passwd的
   -nogroup    查找用户组不在group中的

3、与文件权限及名称相关的参数

-name  【名字】  查找名为这个名字的文件   *代表多个未知字符,
  -size    [ + - ][size]  +代表查找比size大的文件,-代表查找比size小的文件  如 -size  +20k
  -type  [类型]    查找类型为这个的文件,正规文件(f)  设备文件(b、c) 目录(d) 链接(l)
  -perm [权限]   查找权限刚好为这个权限的文件  如 -perm 4771
  -perm -[权限]   查找权限包括这个权限的文件  如 -perm -4771
  -perm /[权限]    查找权限包含这个权限的任一个的权限的文件  -perm /4771

4、其他

  -exec 【命令】  这个选项后可接其他命令来处理查询的结果
  -print    输出在屏幕,这是默认的

实例
查找出所有.c文件并删除

find -name *.c -exec rm -rf {
    
    } \;

这是固定格式

文件内容搜索

grep命令

可在文件内查找特定内容

格式为:grep [选项] ”模式“ [文件]

常用选项

-n 输出显示行号
-v 去除包含此参数的行,输出剩余行
-i 忽略字符大小写的差别

实例
在文件中搜索一个单词,命令会返回包含“match_pattern”的文本行:

grep gfx /etc/passwd

结果:

在多个文件中查找

grep "match_pattern" file_1 file_2 file_3 ...

不显示注释

grep -v "#" file_name

使用正则表达式 -E 选项

grep -E “[1-9]+”
egrep “[1-9]+”

おすすめ

転載: blog.csdn.net/GuanFuXinCSDN/article/details/122511868