linux文件查找
linux的核心思想是“一切皆文件”;所有的设备、系统配置等都是以文件形式来存储,能够准确的找到文件,才能够对该文件做修改等操作;所以文件的搜寻、查找对于系统的维护与管理至关重要
1、which:查找可执行文件位置
which会由PATH定义的路径中找出系统命令对应的可执行文件位置,并返回第一次找到的结果
用法:
which [optinos] Command...
常用选项:
-a:列出所有由PATH定义路径找出的文件位置
2、whereis:查找文件位置
whereis只能用于程序名的搜索,而且只能搜索二进制文件、man说明文件和源代码文件,默认返回所有信息
whereis会从数据库中查找,该数据库并不是实时更新的,默认该数据库一周更新一次;有时会找到已经被删除的文件或者找不到刚建立的文件
用法:
whereis [optinos] [directory] FILENAME...
常用命令:
-b:查找可执行文件
-m:查找帮助文件
-s:查找源代码文件
-u:搜索默认路径下除可执行文件、帮助文件、源代码文件以外的其他文件
-B:指定搜索可执行文件的路径
-M:指定搜索帮助文件的路径
-S:指定搜索源代码文件的路径
3、locate:根据数据库查找文件
locate是通过update程序将硬盘中的所有文件先建立一个索引数据库,在执行locate时直接找索引,查询速度快,但并非实时查找;数据库一般由操作系统管理,系统会在每天通过crontab程序来更新此数据库,也可以使用updatedb命令手动更新此数据库
用法:
locat [options] [pattern]...
常用选项:
-i:忽略大小写
-r:使用正则表达式
-q:不显示任何错误信息
4、find:遍历查找
find在目录结构中搜索文件,并执行指定的操作。find命令提供了相当多的查找条件,实时查找,功能强大,因为find是遍历查找指定目录的所有文件,所以速度慢,消耗资源,因为遍历一个大文件系统可能会花费很长的时间
用法:
find [PATH] [options] [expression]...
常用选项:
-name FILENAME:对文件名做精确匹配,支持文件名通配
-iname FILENAME:文件名匹配时不区分大小写
-regex PATTERN:对文件名匹配时使用正则表达式
-user USERNAME:根据文件属主查找
-group GROUPNAME:根据文件属组查找
-uid UID:根据UID查找
-gid GID:根据GID查找
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件
-type:根据文件类型查找
d:目录(directory)
f:普通文件(file)
c:字符设备文件(character)
b:块设备文件(block)
l:符号链接文件(symbolic link file)
p:管道文件(pipe)
s:套接字文件(socket)
-size:根据大小查找(默认大小为字节)
[+ | -]#:K,M,G
+#M:大于#M的文件
-#M:小于#的文件
-mtime:根据修改时间查找
-ctime:根据状态时间查找
-atime:根据访问时间查找
[+距现在几天前 | -距现在几天以内]#
-mmin:根据分钟查找,表示有多少分钟访问过或没有访问
-amin:根据分钟查找
-cmin:根据分钟查找
[+ | -]#
-perm MODE:根据权限查找(使用8进制数字表示)
MODE:精确匹配
/MODE:任意一位权限匹配即符合条件
-MODE:文件权限完全包含此MODE时才符合条件
组合条件:
-a:与
-o:或
-not:非
后续处理:
默认为-print:显示
-ls:类似ls -l的形式显示文件的详细信息
-ok Command {} \;:使用shell命令对查找到的文件做后续处理,{}引用找到的文件
-exec Command {} \;:同-ok,-ok的每一个操作都需要用户确认,-exec不需要
| xargs Command:从标准输出读取文件,比-ok,-exec功能强大,本身可以不适用引用符,也不需要\;结尾
本文出自 “杆儿男” 博客,请务必保留此出处http://wtime.blog.51cto.com/8829658/1537625
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。