Linux基础之文件查找find、locate

2017-09-16  本文已影响0人  王王王小白

(一)使用locate命令

/var/lib/mlocate/mlocate.d

locate

locate KEYWORD
-i 不区分大小写的搜索
-n N 只列举前N 个匹配项目
locate conf
#搜索名称或路径中带有“conf ”的文件
locate -r ‘\.conf$’
#使用Regex 来搜索以“.conf

(二)find命令

find [OPTION]... [ 查找路径] [查找条件] [ 处理动作]
查找路径:指定具体目标路径;默认为当前目录
查找条件:指定的查找标准,可以文件名、大小、类型、权限等标准进行;默认为找出指定路径下的所有文件
处理动作:对符合条件的文件做操作,默认输出至屏幕

-maxdepth level 最大搜索目录深度, 指定目录为第1级
-mindepth level 最小目录深度

上述的条件可以组合起来进行组合查找,但是中间要加上组合条件的KEYWORD

(非 A) 或 (非 B) = 非(A 且 B)
(非 A) 且 (非 B) = 非(A 或 B)
示例:
!A -a !B = !(A -o B)
!A -o !B = !(A -a B)
对以上的了解的只是这里做个简单的例子

找出/tmp目录下,属主不是root,且文件名 不以f 开头的文件
find /tmp ( -not -user root -a -not -name 'f' ) -ls
find /tmp -not ( -user root -o -name 'f
' ) –ls
示例:查找/etc/下,除/etc/sane.d目录的其它所有.conf后缀的文件
find /etc -path ‘/etc/sane.d’ -a -prune-o -name “.conf”
find /etc (–path ‘/etc/sane.d’ –o –path ’/etc/fonts’ )-a prune –o name “
.conf”
查找条件可以是其他的:

find示例:

find -name “*.conf” -exec cp {} {}.orig \;
# 备份配置文件,添加.orig这个扩展名
find /tmp -ctime +3 -user joe -ok rm {} \;
# 提示删除存在时间超过3天以上的joe 的临时文件
find ~ -perm -002 -exec chmod o-w {} \;
# 在你的主目录中寻找可被其它用户写入的文件
find /data –type f -perm 644 -name “*.sh” –exec chmod 755{}\;
find /home –type d -ls
# 需要找/data文件内权限为644的以“.sh”结尾的普通文件然后修改权限为755

参数替换xargs

- xargs用于产生某个命令的参数,xargs入可以读入stdin的数据,并且以空格符或回车符将将stdin的数据分隔成为arguments
- 注意:文件名或者是其他意义的名词内含有空格符的情况
- 有些命令不能接受过多参数,命令执行可能会失败,xargs可以解决

find 和xargs 格式:find | xargs COMMAND

上一篇 下一篇

猜你喜欢

热点阅读