linux基础之文件查找

来源:互联网 发布:写编程到底什么意思 编辑:程序博客网 时间:2024/05/25 21:34

locate


特点:

非实时,模糊匹配,查找时根据全系统文件数据库进行的,此数据库会定时更新(取决于系统配置),也可以使用`updatedb`手动生成文件数据库,但是这会相当慢。

用法:

locate FILENAME

find


特点:

实时查找,精确,原理就是遍历指定目录中的所有文件完成查找,所以速度慢。支持众多的查找选项

用法:

find 查找路径 查找选项 查找到以后的处理运作查找路径:默认为当前目录查找选项:默认为指定路劲下的所有文件处理运作:默认为显示

查找选项:

-name FILENAME

对文件名做精确匹配

例:在/目录下查找passwd文件

[root@iZ28g26851kZ opt]# find / -name passwd/etc/pam.d/passwd/etc/passwd/usr/bin/passwd[root@iZ28g26851kZ opt]# 

-iname FILENAME

查找时不区分大小写

-user USERNAME

按所属用户进行查找

例:查找jianshi用户的文件

[root@iZ28g26851kZ opt]# find / -user jianshi/var/spool/mail/jianshi/opt/gfsd/opt/asd/home/jianshi/home/jianshi/.bashrc/home/jianshi/.bash_history/home/jianshi/.bash_profile/home/jianshi/.bash_logoutfind: `/proc/11553/task/11553/fd/5': No such file or directoryfind: `/proc/11553/task/11553/fdinfo/5': No such file or directoryfind: `/proc/11553/fd/5': No such file or directoryfind: `/proc/11553/fdinfo/5': No such file or directory[root@iZ28g26851kZ opt]# 

-group GROUPNAME

根据所属组查找

-uid UID

根据UID查找

-gid GID

根据gid查找

-nouser

查找没有属主的文件

-type

根据文件类型查找

f:普通文件d:目录文件c:字符设备b:块设备l:链接文件p:管道文件s:套接字文件

例:查找tmp目录下的目录文件

[root@iZ28g26851kZ ~]# find /tmp -type d/tmp/tmp/.ICE-unix[root@iZ28g26851kZ ~]# 

-size [+][-]

按大小查找文件

 -size 10k    --查找9-10k之间的文件,所有小于1的都会当做1,所以,9.#k都算10k -size 1k     --查找小于1k的文件 -size +10k   --查找大于10k的文件 -size -10k   --查找小于10k的文件 -size 1M -size 1G

例:查找etc目录下9-10k的文件,并显示详细信息

[root@iZ28g26851kZ ~]# find /etc -size 10k -ls

组合条件

-a:-o:-not:

例:查找当前用户目录下文件类型为目录且小于1M的文件

[root@iZ28g26851kZ ~]# find ~/ -type d -a -size 1M -ls

根据时间戳来查找


按时间戳查找文件
用法

-mtime:修改时间-ctime:改变时间-atime:访问时间以-atime为例-atime [+][-]#//+#:表示至少#天没有访问过的文件//-#:表示#天内没有访问过的文件//#:表示#天没有访问过的文件,多一天少一天都不行

例:找找/tmp目录下至少3天没有被访问过的文件

[root@iZ28g26851kZ ~]# find /tmp/ -atime +3

-perm


根据文件权限来查找

-perm MODE:表示精确匹配,每一位都必须一样-perm -MODE:表示包含匹配,每一位只要包含就行(755包含644,那755就可以被644匹配到)-perm /MODE:是要有一位匹配就能匹配到

例:找到当前目录下权限为744的文件

[root@iZ28g26851kZ ~]# find ./ -perm 744 -ls

处理运作


-print:显示-ls:类似ls -l的形式显示每一个文件的详细信息-ok COMMAND {} \;  :每一次操作都需要用户确认  --{}是文件占位符-exec COMMAND {} \;   :不提醒用户直接执行  -- ;号不可丢哦

例:将/opt目录下的权限为644的文件权限改为755

[root@iZ28g26851kZ opt]# find /opt -perm 644 -exec chmod 755 {} \;
0 0
原创粉丝点击