首页 > 代码库 > Linux命令:find、locate

Linux命令:find、locate

快速搜索:locate

此命令需要预先建立数据库,数据库默认每天更新一次,可用updatedb命令更新数据库。如果没有安装locate用yum install –y mlocate安装,安装完后使用updatedb命令更新数据库(该命令搜出来的结果非常不精准,我们在实际使用中都是用find命令)

[root@root ~]# touch 123.txt     //比如我们创建一个文件
[root@root ~]# locate 123.txt    //然后搜索这个文件是搜索不到的
[root@root ~]#
[root@root ~]# updatedb          //更新数据库后才能找得到
[root@root ~]# locate 123.txt
/root/123.txt

 

高级搜索:find

用法:find + 文件路径 + 查找参数

1.  基于名字的搜索

[root@root ~]# find / -name passwd    //在根目录下搜索passwd文件
/usr/bin/passwd
/selinux/class/passwd
/selinux/class/passwd/perms/passwd
/etc/passwd
/etc/pam.d/passwd

2.  基于类型的搜索

[root@root home]# find ./ -type d    //搜索当前目录下的目录
./    //d表示基于目录类型的搜索
./a

[root@root home]# find ./ -type f    //搜索当前目录下的文件
./1.py    //f表示基于文件类型的搜索
./2.py

3.  基于更改时间的搜索

-atime  最近一次访问时间(单位为天)
-mtime  最近一次内容修改时间(单位为天)
-ctime  最近一次属性修改时间(单位为天)
-amin   最近一次访问时间(单位为分钟)
-mmin   最近一次内容修改时间(单位为分钟)
-cmin   最近一次属性修改时间(单位为分钟)

[root@root home]# find ./ -mtime -5    //-5表示5天内更改过的文件
./    //如果是+5则表示修改时间超过5天的文件
./1.py
./a
[root@root home]# find ./ -mmin +5    //+5表示修改时间超过5分钟的文件
./
./1.py
./a

注意:当我们更改文件内容时,ctime也会随着更改,因为文件的内容更改了,也就意味着文件大小也被更改了,那么就意味着属性被修改,因此ctime会更改

[root@root home]# stat 1.py    //stat命令可以查看文件的atime、mtime、ctime
File: "1.py"
Size: 114 Blocks: 8 IO Block: 4096 普通文件
Device: fd00h/64768d Inode: 781923 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-08-07 11:46:00.355757826 +0800    //atime信息
Modify: 2016-08-07 11:45:58.826754450 +0800    //mtime信息
Change: 2016-08-07 11:45:58.870752238 +0800    //ctime信息

4.  基于文件权限的搜索

//基于文件权限的搜索要加上 –perm 参数

[root@root home]# find ./ -perm 777    //搜索当前目录下文件权限为777的文件
./c
./b
./a
[root@root home]# find ./ -perm 644    //搜索当前目录下文件权限为644的文件
./1.py

Linux命令:find、locate