文件查找
1.1 locate
格式
locate [OPTION]... [PATTERN]...
#常用选项
-A|--all #输出所有能匹配到的文件名,不管文件是否存在
-b|--basename #仅匹配文件名部分,而不匹配路径中的内容
-c|--count #只输出找到的数量
-d|--database DBPATH #指定数据库
-e|--existing #仅打印当前现有文件的条目
-L|--follow #遇到软链接时则跟随软链接去其对应的目标文件中查找 (默认)
-i|--ignore-case #忽略大小写
-l|--limit|-n N #只显示前N条匹配数据
-P|--nofollow, -H #不跟随软链
-r|--regexp REGEXP #使用基本正则表达式
--regex #使用扩展正则表达式
-s|--stdio #忽略向后兼容
-w|--wholename #全路径匹配,就是只要在路径里面出现关键字(默认)
范1.2 find
ind 是实时查找工具,通过遍历指定路径完成文件查找;
工作特点:
查找速度略慢
精确查找
实时查找
查找条件丰富
可能只搜索用户具备读取和执行权限的目录
1.2.1 指定搜索目录层级
-maxdepth N #最大搜索目录深度,指定目录下的文件为第1级
-mindepth N #最小搜索目录深度1.2.2 先处理文件再处理目录
-depth #先处理文件1.2.3 根据文件名和inode查找
-name name #支持使用glob,如:*, ?, [], [^],通配符要加双引号引起来
-iname name #不区分字母大小写
-inum number #按inode号查找
-samefile name #相同inode号的文件
-links n #链接数为n的文件
-regex "PATTERN" #以PATTERN匹配整个文件路径,而非文件名称1.2.4 根据属主属组查找
-user USERNAME #查找属主为指定用户(UID)的文件
-group GRPNAME #查找属组为指定组(GID)的文件
-uid UserID #查找属主为指定的UID号的文件
-gid GroupID #查找属组为指定的GID号的文件
-nouser #查找没有属主的文件
-nogroup #查找没有属组的文件1.2.5 根据文件类型查找
-type TYPE #指定文件类型
#type 值
f #普通文件
d #目录文件
l #符号链接文件
s #套接字文件
b #块设备文件
c #字符设备文件
p #管道文件1.2.6 空文件或目录
-empty #空文件或空目录1.2.7 组合条件
-a #与,多条件默认就是与关系,可省略
-o #或
-not|! #非1.2.8 排除目录
-prune #跳过,排除指定目录,必须配合 -path使用1.2.9 根据文件大小来查找
-size [+|-]N UNIT # N为数字,UNIT为常用单位 k, M, G, c(byte) 等
#解释
10k #表示(9k,10k],大于9k 且小于或等于10k
-10k #表示[0k,9k],大于等于0k 且小于或等于9k
+10k #表示(10k,∞),大于10k1.2.10 根据时间戳
#以天为单位
-atime [+|-]N
-mtime [+|-]N
-ctime [+|-]N
#以分钟为单位
-amin [+|-]N
-mmin [+|-]N
-cmin [+|-]N
#解释
N #表示[N,N+1),大于或等于N,小于N+1,表示第N天(分钟)
+N #表示[N+1,∞],大于或等于N+1,表示N+1天之前(包括)
-N #表示[0,N),大于或等于0,小于N,表示N天(分钟)内1.2.11 根据权限查找
-perm [/|-]MODE
MODE #精确权限匹配
/MODE #任何一类(u,g,o)对象的权限中只要有一位匹配即可,表示或者(or)关系
+MODE #从CentOS 7开始己淘汰
-MODE #每一类对象都必须同时拥有指定权限,表示与(and)关系
#0 如果要找时权限位上的值为0,则表示不关注该角色权限1.2.12 正则表达式
-regextype type #正则表达式类型,emacs|posix-awk|posix-basic|posixegrep|posix-extended
-regex pattern #正则表达式1.2.13 处理动作
-print #默认的处理动作,显示至屏幕
-print0 #不换行输出,常用于配合xargs
-ls #类似于对查找到的文件执行"ls -ils"命令格式输出
-fls file #查找到的所有文件的长格式信息保存至指定文件中,相当于 -ls > file
-delete #删除查找到的文件,慎用!
-ok COMMAND {} \; #对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认
-exec COMMAND {} \; #对查找到的每个文件执行由COMMAND指定的命令
{} #用于引用查找到的文件名称自身1.3 参数替换 xargs
xargs [OPTION]... COMMAND [INITIAL-ARGS]...
#常用选项
-0|--null #用 assic 中的0或 null 作分隔符
-a|--arg-file=FILE #从文件中读入作为输入
-d|--delimiter=CHARACTER #指定分隔符
-E END #指定结束符,执行到此处时停止,不管后面的数据
-L|--max-lines=N #从标准输入一次读取N行送给 command 命令
-l #同上
-n|--max-args=MAX-ARGS #一次执行用几个参数
-p|--interactive #每次执行前确认
-r|--no-run-if-empty #当xargs的输入为空的时候则停止xargs,不用再去执行了
-s|--max-chars=MAX-CHARS #命令行最大字符数
-t|--verbose #显示过程,先打印要执行的命令
-x|--exit #退出,主要配合-s使用
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果