Linux下的文件搜索

2017-03-17  本文已影响0人  卢桂林

locate aaa.txt 这个命令速度快,但是它只能搜索文件名
因为locate是搜索的/var/lib/mlocate的数据库下mlocate里面搜索,所以新建的文件不会被刷新到这个库里面来,但是我们可以手动刷新这个库updatedb刷新数据库指令
但是这里还有一个梗,locate的数据库mlocate并不会记录所有的数据文件的,它有一个配置文件 /etc/updatedb.config

updatedb.config 表示文件意义

  • PRUNE_BIND_MOUNTS="yes"  yes开启限制,no反之
  • PRUNEFS=   不搜索的文件系统
  • PRUNENAMES=   不搜索的文件类型
  • PRUNEPATHS=   不搜索的路径

命令搜索命令 只能用来搜索命令

  • whereis搜索命令所在路径和帮组文档位置
    whereis -bm ls

-b只查找可执行文件
-m只查找帮助文档(可以理解为 man缩写)
whoami查看当前操作用户
想要知道命令是干嘛的用whatis 例如:whatis ls

  • which不仅可以搜索命令,还可以查看命令的别名(但是不是所有的文件都有别名)

which ls

  • PATH环境变量

打印环境变量命令echo $PATH 使用的命令都会在这里配置文件夹里面找

  • find

find [范围路径] [搜索条件] [搜索文件]    应该尽量缩小范围,提高性能
例如:find / -name install.log
find搜索的是完全匹配,所以我们一般需使用通配符

  • 通配符(跟正则差不多)
  • ? 匹配任意一个字符
  • * 匹配任意内容
  • [] 匹配任意一个中括号内的字符
  • -iname 不区分大小写

find /root -iname install.log

  • -user 按照所有者搜索

find /root -user root

  • -nouser 查找没有所有者的文件

find /root -nouser
没有所有者的文件一般都是垃圾文件,内核文件、外来数据没有所有者,例如系统生产的文件,护着windows生成的文件U盘

  • -mtime 修改文件内容

find /var/log/ -mtime +10十天前修改的文件

  • -10 10天内修改的文件
  • 10 10天当天修改的文件
  • +10 10天前修改的文件
  • -atime 文件访问时间
  • -ctime 改变文件属性的时间
  • -size 文件大小条件

find . -size 25k当前目录下大小为25kb的文件
-25k小于25kb的文件
25k等于25kb的文件
+25k大于25kb的文件
(注意单位的大小写 k M 如果不加单位则是表示25个扇区大小)

  • -inum 查找磁盘表中i节点

find . -inum 456745当前目录下找i节点为456745的文件

  • 逻辑条件 -a 与 -o或(-and -or)
imageimage
只要写了-exec后面就要加空格{}空格\;

grep [选项] 字符串 文件名(在指定的文件中匹配符合条件的字符串,条件字符串可以配合正则一起使用)
grep "你好啊" aaa.txt

  • -i 忽略大小写
  • -v 排除指定字符串
上一篇下一篇

猜你喜欢

热点阅读