Linux常用命令总结(二)
搜索文件
与搜索相关的命令常用的有 whereis,which,find 和 locate。
-
whereis: 简单快速
whereis直接从数据库中查询,但只能搜索二进制文件(-b),man 帮助文件(-m)和源代码文件(-s)
-
locate 快而全
locate通过查询 /var/lib/mlocate/mlocate.db 数据库来检索信息,不过这个数据库也不是实时更新的,系统会使用定时任务每天自动执行 updatedb 命令来更新数据库,locate命令不是内置的命令,在部分环境中需要手动安装,然后执行更新。
sudo apt-get update
sudo apt-get install locate
//手动更新mlocate.db数据库
sudo updatedb它可以用来查找指定目录下的不同文件类型,还会 自动显示目录内的内容
//查找 /usr/share/ 下所有 jpg 文件:
locate /usr/share/\*.jpg如果想只统计数目可以加上 -c 参数,-i 参数可以忽略大小写进行查找,whereis 的 -b、-m、-s 同样可以使用。
-
which: 小而精
which 本身是 Shell 内建的一个命令,通常使用 which 来确定是否安装了某个指定的程序,因为它只从 PATH 环境变量指定的路径中去搜索命令并且返回第一个搜索到的结果。也就是说,我们可以看到某个系统命令是否存在以及执行的到底是哪一个地方的命令。如:
-
find: 精而细
find不但可以通过文件类型、文件名进行查找而且可以根据文件的属性(如文件的时间戳,文件的权限等)进行搜索。以下总结常见使用方法:
find [path][option] [action] 该命令表示在path路径下搜索相应文件。常见参数有:
参数 | 说明 |
---|---|
-atime | 最后访问时间 |
-ctime | 最后修改文件内容的时间 |
-mtime | 最后修改文件属性的时间 |
-name | 文件名 |
-path | 目录 |
-type | 普通文件(f),目录(d),链接文件(l) |
应用举例及说明:
1、//查找/tmp路径下所有名称中包含.log的文件
find /tmp -name ".log"
2、//在指定目录下搜索某目录中的某文件
find /tmp -path 'a/.log’
/tmp/abc/axyz.log
3、下面以 -mtime 参数举例:
-mtime n:n 为数字,表示为在 n 天之前的“一天之内”修改过的文件
-mtime +n:列出在 n 天之前(不包含 n 天本身)被修改过的文件
-mtime -n:列出在 n 天之内(包含 n 天本身)被修改过的文件
-newer file:file 为一个已存在的文件,列出比 file 还要新的文件名
列出 home 目录中,当天(24 小时之内)有改动的文件:
find ~ -mtime 0