查找:
locate 关键字
注意: 此命令需要预先建立数据库,数据库默认一天更新一次。所以如果刚刚建立的新文件,一般是不会被locate到的。
如果需要用locate查找刚刚建立的新文件,需要更新数据库——更新数据库需要用命令updatedb
另外,locate命令搜索的是整个系统下的关键字。
find 查找位置 查找参数
查找位置:目录名称
如果是整个目录文件,则用/
如果是当前目录文件,则用.
查找参数:
find . -name *关键字*
find / -name *.后缀名
find / -perm 777 注意:777其实是16禁止数,二进制为011101110111,代表文件权限。
find / -type d
d 目录
l 链接
find . -name "*a" -exec ls -l {} \;
显示所有以a开头的文件的详细信息。红色部分为固定格式。
[neil@localhost ~]$ find -name "kd"
[neil@localhost ~]$ find -name "kd*"
./下载/kd05.ppt.gz
[neil@localhost ~]$ ^C
[neil@localhost ~]$ find . -name "kd*"
./下载/kd05.ppt.gz
[neil@localhost ~]$
find命令搜索的是名字参数是通配符,而不是关键字,所以之输入“kd”无法得到含有“kd”串的文件。
在不输入查找位置的情况下,应该是查找了整个系统目录,第二次输入的命令在得到了一条记录之后一直在运行为停止。
在Ctrl+C结束之后,加入当前位置符号“.”,迅速得到结果并完成结束。
[neil@localhost ~]$ find . -name "kd*" -exec ls -l {} \;
-rw-rw-r--. 1 neil neil 2537229 10月 19 16:54 ./下载/kd05.ppt.gz
[neil@localhost ~]$ find . -name "kd*" -exec touch {} \;
[neil@localhost ~]$ find . -name "kd*" -exec ls -l {} \;
-rw-rw-r--. 1 neil neil 2537229 1月 18 14:20 ./下载/kd05.ppt.gz
上面分别实验了find与ls -l、touch两条命令分别结合。
后先将kd开头的文件显示详细信息,注意其文件建立更新时间。
之后将kd开头的文件进行更新。
最后再次将kd开头的文件显示详细信息,注意其文件建立更新时间。发现前后时间已经不同了,说明第二个命令也是有效的。以此类推,我们以后还可以将find与rm等命令结合使用。
find
-name
-perm
-user 查找某用户的文件
-group
-ctime
-type
-size
——————————————————————————————————————————————
find命令比locate命令速度要慢。原因就死locate是遍历的数据库,相当于遍历文件索引,所以快速;但是updatedb是需要一些时间的。
find命令就是一般的遍历文件系统,所以稍慢些。
来源:oschina
链接:https://my.oschina.net/u/1156339/blog/194022