阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

你知道Linux系统中find命令的使用方法吗?

125次阅读
没有评论

共计 2937 个字符,预计需要花费 8 分钟才能阅读完成。

今天小编带给大家的文章是关于 Linux 系统 中 find 命令的使用方法。熟悉 Linux 的小伙伴可能会对这个命令有所了解,但小编相信很多小伙伴对它没有深入的了解,下面小编就来和大家谈一谈关于 Linux 系统中的 find 命令的使用方法。

你知道 Linux 系统中 find 命令的使用方法吗?

find 命令特点:文件查找,实时查找,速度略慢,精确匹配

使用格式:# find [options] [查找路径] [查找条件] [处理动作]

查找路径:默认为当前目录

查找条件:默认为查找指定路径下的所有文件

处理动作:默认为显示

· 查找 /tmp 目录下文件名为 passwd 的文件:# find /tmp -name”passwd”

· 查找 /tmp 目录下文件名以 passwd 开头的文件,passwd 不区分大小写:# find /tmp -iname “passwd*”

· 查找 /tmp 目录下属主为 linuxmi 的文件:# find /tmp -user linuxmi

· 查找 /tmp 目录下属组为 linuxmi 的文件:# find /tmp -grouplinuxmi

· 查找 /tmp 目录下 UID 为 502 的文件:# find /tmp -uid 502

· 查找 /tmp 目录下 GID 为 502 的文件:# find /tmp -gid 502

一个普通用户例如 linuxmi 创建了 /tmp/linuxmi.txt,该文件属主和属组都是 linuxmi,但当 keyso 用户被删除之后,/tmp/linuxmi.txt 文件的属主和属组会发生变化,此种情况无法再根据属主为 linuxmi 这个被删除用户查找到 /tmp/linuxmi.txt 文件

· 查找 /tmp 目录下没有属主的文件:# find /tmp -nouser

· 查找 /tmp 目录下没有属组的文件:# find /tmp -nogroup

· 查找 /tmp 目录下的目录:# find /tmp -type d

-type 文件类型包括:f(普通文件)、d(目录)、b(块设备)、c(字符设备)、l(符号链接文件)、p(命名管道)和 s(套接字)等

· 查找 /tmp 目录下大于 100M 的文件:# find /tmp -size +100M

-size:根据文件大小查找,-size [+ | -]#[k | M | G],+(大于),-(小于),没有 + 和 -,就是精确匹配

# 实际的取值范围:(#-1)<x<=#

· 查找 /tmp 目录下一天之内被访问过的文件:# find /tmp -atime -1

格式:-[a | m | c][time | min] [+ | -]#

根据 time 时间戳查找(以天为单位):

-atime:访问时间,就是一个文件最后一次被访问的时间

-mtime:修改时间,就是文件的内容最后被修改的时间

-ctime:改变时间,就是文件或者目录的属性 (属主、属组、权限等等) 被改变的时间

根据 min 时间戳查找(以分钟为单位):

-amin:意义同 -atime

-mmin:意义同 -mtime

-cmin:意义同 -ctime

+#:表示 (#+1) 天之外被访问过

-#:表示 #天之内被访问过

#:表示在 #<=x<(#+1)天的时间段内被访问过

· 查找 /tmp 目录下权限为 644 的文件:# find /tmp -perm 644

根据权限查找,格式:-perm [+ | -]MODE

+MODE:任何一类用户的任何一位权限匹配,常用于查找某类用户的某特定权限是否存在

-MODE:每类用户的指定要检查的权限位都要匹配

MODE:精确匹配所给的权限

示例://6=4+2=r+w

· 查找 /tmp 目录下权限为 666 的文件(精确匹配):# find /tmp -perm 666

· 查找 /tmp 目录下其他用户有读写权限的文件:# find /tmp -perm -006

· 查找 /tmp 目录下其他用户有读或者写权限的文件:# find /tmp -perm +006

· 查找 /tmp 目录下至少有一类用户有写权限的文件:# find /tmp -perm +222

· 查找 /tmp 目录下所有用户都有写权限的文件:# find /tmp -perm -222

· 查找 /tmp 目录下所有用户都没有写权限的文件:# find /tmp -not -perm +222

//“所有用户都没有”和“只要有一类用户有”意思相反

// 只确定不能有写权限,并不能确定有没有读和执行权限

· 查找 /tmp 目录下至少有一类用户没有写权限的文件:# find /tmp -not -perm -222

//“至少有一类用户没有”和“所有用户都有”意思相反

· 查找 /tmp 目录下属组或者其他用户有读写权限的文件:# find /tmp -perm -060 -o -perm -006

· 查找 /tmp 目录下属组和其他用户都有读写权限的文件:# find /tmp -perm -066

· 查找 /tmp 目录下属组有读或者写权限,或者其他用户有读或者写权限的文件(4 选 1):

# find /tmp -perm +066

· 查找 /tmp 目录下的普通文件,并删除:# find /tmp -type f -exec rm -rf {} ;

· 查找 /tmp 目录下大于 10M 的文件,并以长格式显示文件信息:# find /tmp -size +10M -ls

· 查找 /tmp 目录下以.doc 结尾的文件,并重命名为.docx:# find /tmp -iname “*.doc” -exec mv {} {}x ;

处理动作:

-ls:以长格式显示文件信息

-exec COMMAND {} ; –> 对查找到的文件执行指定的命令,{}为占位符,指代 find 查找到的文件

-ok COMMAND {} ; –> 与 -exec COMMAND {} ; 类似,交互式的 -exec

|xargs COMMAND:对查找到的文件执行指定的命令,功能与 -exec COMMAND {} ; 类似

备注:-exec 与 xargs 的区别

-exec:find 将查找到的所有文件一次性全部传递给 -exec 所指定的命令,容易出现溢出错误。-exec 为处理每一个匹配到的文件而发起一个相应的进程,会导致进程过多,系统性能下降

xargs:对 find 传递给 xargs 所指定的命令的文件,每次只获取一部分而不是全部,不会出现溢出错误。另外 xargs 只会发起一个进程,不会导致系统性能下降

· 查找 /tmp 目录下没有属主或属组,且最近 1 个月内曾被访问过的文件:

# find /tmp (-nouser -o -nogroup) -a -atime -30 // 括号内侧的两端都需要加空格

组合条件:

-a:与,同时满足,如果组合条件中只有 -a,可以省略 –> # find /tmp -user hadoop [-a] -name “*.txt”

-o:或,只需满足其一即可,优先级比 - a 低,如果需要先执行 - o 条件,需要加 (),() 需要转义

-not | !:非,取反

非 A 且非 B <==> 非(A 或 B) -not A -a -not B <==> -not (A -o B)

非 A 或非 B <==> 非(A 且 B) -not A -o -not B <==> -not (A -a B)

本文永久更新链接地址:https://www.linuxidc.com/Linux/2018-05/152609.htm

以上就是小编今天为大家分享的关于 Linux 系统中 find 命令的使用方法,希望本篇文章能够对你有所帮助,想了解更多关于 Linux 相关的信息记得关注 马哥 Linux官网哦,这里不仅有丰富的 Linux 资讯还有专业的 Linux 培训 班,快来吧,小编在这里等你哦~

声明:文章转载于网络,版权归原作者所有!

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-12-03发表,共计2937字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中