Linux文件搜索
程序员文章站
2024-01-20 19:02:40
...
1)whereis简单快捷,从数据库中搜索,whereis 只能搜索二进制文件(-b),man 帮助文件(-m)和源代码文件(-s)
updatedb进行更新,它可以用来查找指定目录下的不同文件类型,如查找 /etc 下所有以 sh 开头的文件:
3)which小而精,which 本身是 Shell 内建的一个命令,我们通常使用 which 来确定是否安装了某个指定的软件,因为它只从 PATH 环境变量指定的路径中去搜索命令
$which man
4)find 精而细,find应该是这几个命令中最强大的了,它不但可以通过文件类型、文件名进行查找而且可以根据文件的属性(如文件的时间戳,文件的权限等)进行搜索。
-mtime +n:列出在 n 天之前(不包含 n 天本身)被修改过的文件
-mtime -n:列出在 n 天之内(包含 n 天本身)被修改过的文件
$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
-mtime +n:列出在 n 天之前(不包含 n 天本身)被修改过的文件
-mtime -n:列出在 n 天之内(包含 n 天本身)被修改过的文件
-newer file:file 为一个已存在的文件,列出比 file 还要新的文件名
$find ~ -mtime 0//列出 home 目录中,当天(24 小时之内)有改动的文件
$ find ~ -newer /home/xxx_user/Code //列出用户家目录~下比 Code 文件夹新的文件