欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux文件搜索

程序员文章站 2024-01-20 19:02:40
...
1)whereis简单快捷,从数据库中搜索,whereis 只能搜索二进制文件(-b),man 帮助文件(-m)和源代码文件(-s)
$whereis -b who  //只查询名为who的可执行文件
  2)locate 快而全,本质通过通过“ /var/lib/mlocate/mlocate.db ”数据库查找,系统自动每天更新一次,可通过
updatedb进行更新,它可以用来查找指定目录下的不同文件类型,如查找 /etc 下所有以 sh 开头的文件:
$locate /etc/sh  //注意,它不只是在 /etc 目录下查找,还会自动递归子目录进行查找。
$locate /usr/share/\*.jpg //查找 /usr/share/ 下所有 jpg 文件,注意要添加 * 号前面的反斜杠转义,否则会无法找到。
如果想只统计数目可以加上 -c 参数,-i 参数可以忽略大小写进行查找
   
  3)which小而精,which 本身是 Shell 内建的一个命令,我们通常使用 which 来确定是否安装了某个指定的软件,因为它只从 PATH 环境变量指定的路径中去搜索命令
$which man


   4)find 精而细,find应该是这几个命令中最强大的了,它不但可以通过文件类型、文件名进行查找而且可以根据文件的属性(如文件的时间戳,文件的权限等)进行搜索。
$ sudo find /etc/ -name interfaces //去 /etc/ 目录下面 ,搜索名字叫做 interfaces 的文件或者目录
//格式:find [path] [option] [action] 

以时间为参数需要记下一个参数:-mtime

Linux文件搜索

-mtime n:n 为数字,表示为在 n 天之前的“一天之内”修改过的文件
-mtime +n:列出在 n 天之前(不包含 n 天本身)被修改过的文件
-mtime -n:列出在 n 天之内(包含 n 天本身)被修改过的文件

-newer file:file 为一个已存在的文件,列出比 file 还要新的文件名

$find ~ -mtime 0//列出 home 目录中,当天(24 小时之内)有改动的文件
$ find ~ -newer /home/xxx_user/Code //列出用户家目录~下比 Code 文件夹新的文件