文件查找命令使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件查找命令使用相关的知识,希望对你有一定的参考价值。
- 文件查找工具:locate、find
- locate使用
- find使用
为了高效提升效率,文件系统中的文件众多,Linux系统一切皆文件的思想,不免有时候忘记某个文件位于哪个文件夹,或具体叫什么名字等,使用ls/cd 等工具一个一个查找比较低效无用,对于内容查找可以使用‘三剑客‘。
- locate使用
依赖事先存在的索引库,数据并非实时更新,需要手动update或者cron任务实现周期更新;
特点:
查找速度快、模糊查找、非实时查找
用法:
locate [options] pattern..
-b : 只匹配路径的基名
-c : 统计出共有多少个符合的
-r : 正则表达式匹配 -
find使用
实时查找,通过遍历整个跟文件系统查找,比较消耗资源
特点:查找速度略慢、精确查找、实时查找
用法:
find [options] [查找起始路径] [查找条件] [处理动作]
查找路径:默认当前路径,指定精确的范围能够提高效率
查找条件:指定查找的标准,文件名、大小、文件类型、从属关系、时间、权限
处理动作:默认为标准输出至屏幕,可以对查找符合条件的文件做处理,如删除、执行某命令。
查找条件:[选项[测试条件]]-
测试条件:布尔型结果true 、false
组合测试:
-a: 与关系,如何多个条件不加测试,默认为与关系
-o: 或关系
-not | !: 非关系 -
根据文件名查找
-name “pattern”
-iname "pattern" :不区分大小写
-regex "pattern":基于正则表达式查找,匹配是整个路径,而非其名
支持glob通配符:*、?、[]、[^]...
如查找/usr/share/中.jpg结尾文件:
-
根据从属关系查找
-user username:指定用户文件的属主查找
-group groupname:指定文件的属组查找
-uid UID :指定文件的uid查找
-gid GID :指定文件的gid查找
-nouser :查找没有属主的文件
-nogroup :查找没有属组的文件 - 根据文件类型查找
-type TYPE
f: 普通文件
d: 目录文件
l:符号链接文件
b:块设备 文件
c:字符设备文件
p:管道文件
s:套接字文 -
根据文件大小查找
-size [+|-] #单位 :单位常用K,M,G
#3K:表示精确大小查找,(#-1,#]数学范围表示
+3K:表示大于3K的文件,(#,0-0)
-3K:表示小于3K的文件,(0,#) -
根据文件时间戳查找,即stat的三个时间戳
以天为单位:类型 [+|-] #
-atime :访问时间
-mtime :修改时间
-ctime :改变时间
以分钟为单位:
-amin
-mmin
-cmin
以数轴为例区分【+|-】# -
根据文件权限查找
-perm [/|-]mode
mode:精确权限查找
/mode:任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足;9位权限之间存在“或”关系;
-mode:每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足; 9位权限之间存在“与”关系; - 处理动作:
-print:标准输出;默认动作;
-ls:类似于对查找到的文件执行“ls -l”命令,输出文件的详细信息;
-delete:删除查找到的文件;
-fls /PATH/TO/SOMEFILE:把查找到的所有文件的长格式信息保存至指定文件中;
-ok COMMAND ‘{}’ ; :对查找到的每个文件执行由COMMAND表示的命令;每次操作都由用户进行确认;
-exec COMMAND {} ; :对查找到的每个文件执行由COMMAND表示的命令;
注意:find传递查找到的文件路径至后面的命令时,是先查找出所有符合条件的文件路径,并一次性传递给后面的命令; 但是有些命令不能接受过长的参数,此时命令执行会失败;
可以使用:find | xargs COMMAND
如:找到/usr/share/下图片并复制到/tmp下
-
- 以上只是查找文件,如何根据内容查找:如查找grub.d/下中文件包含有GRUB2_PASSWORD
-r:表示递归查找
-n:显示行号
详细用法查看grep.
以上是关于文件查找命令使用的主要内容,如果未能解决你的问题,请参考以下文章