在linux下搜索文件只需要几行简单的命令就搞定了,不过不同的指令其功能也是不一样的,使用的时候要灵活选择。
-
whereis
简单快速
whereis <filename>
直接从数据库查询,但是只能搜索二进制文件bin,man帮助文档,源代码文件-s
-
locate
快&全
通过/var/lib/mlocate.db
数据库查找。
不过这个数据库不是实时更新的,系统会使用定时任务每天自动执行updatedb
更新一次,所以刚添加的文件要手动执行一次updatedb
才能找得到。
它可以用来查找指定目录下的不同文件类型,比如查找/etc下所有sh开头的文件 :
locate /etc/sh
它不只会在etc目录下查找并且会自动递归子目录进行查找
又比如查找某目录下所有jpg文件:
locate /usr/share/\*.jpg
-
which
shell内建的一个命令。通常使用which来确定是否安装了某个指定的软件,因为它只从PATH路径去搜索
which man
-
find
功能最强大也最复杂
可以通过文件类型,文件名,文件属性(时间,权限)进行搜索
基本格式:
find <path> <option> <action>
比如和时间相关的一些命令:
-atime //last access time
-ctime //created time
-mtime //last edit time
以-mtime
参数举例:
-mtime n //edited the day n days ago
-mtime +n //edited n days ago excluding nth day
-mtime -n //edited n days ago including nth day
-newer <file> //edited newer than <file>
e.g.:
find ~ -mtime 0
24小时内有改动
find ~ -newer /home/user/code
网友评论