Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >你知道Linux系统中find命令的使用方法吗?

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

作者头像
小小科
修改于 2020-05-21 09:51:06
修改于 2020-05-21 09:51:06
1.4K0
举报
文章被收录于专栏:北京马哥教育北京马哥教育

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

好的,今天的分享到这里就结束了!文章转载于马哥教育官网:http://www.magedu.com/84177.html

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
linux(七)之linux系统中查找文件
前面介绍一篇文章介绍了关于vi编辑器的使用,感觉是不是那么多的命令怎么记得住呀,小编也是这样让认为的,但是慢慢的发现,其实还是很有意思的。正所谓熟能生巧多练习,找到其中的规律就ok了。 今天看到一句话
用户1195962
2018/01/18
5.7K0
linux(七)之linux系统中查找文件
一日一命令:find 命令详解
find 用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
BUG弄潮儿
2022/02/10
4260
Linux文件查找命令find,xargs详述
由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
EltonZheng
2021/01/26
7.7K0
linux文件查找-find命令
find pathname -options [-print -exec -ok ...] {}\
yuezhimi
2020/09/30
8.8K0
一天一个 Linux 命令(17):find 命令
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/144
joshua317
2021/09/28
8430
Find命令使用
slocate先将当前目录结构做成一个数据库,然后在此数据库中搜索匹配记录,因此它比find命令的搜索速度更快。
云深无际
2021/04/14
5380
Find命令使用
Linux find命令详解
find pathname -options [-print -exec -ok ...]
一见
2018/08/07
3.9K0
CentOS find命令
2018年03月17日 17:26:46 xxllbb_bbb 阅读数 241更多
拓荒者
2019/07/01
1.1K0
find命令实例
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。 -print: find命令将匹配的文件输出到标准输出。 -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。 -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
孙晨c
2019/09/10
5330
linux find命令详解_常用的shell命令
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/165110.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/19
1.1K0
【玩转Linux命令】Linux中find常见用法
find path -option [ -print ] [ -exec -ok command ] {} \;
软测小生
2019/07/05
1.4K0
Linux find命令使用方法
find test –path "/tmp/tmp1" –prune –o –print
用户8418197
2022/01/16
1.4K0
Linux find 命令
find 命令在linux中是很常用到的一个查找命令,它的功能非常地强大。可以结合正则匹配来搜索系统中的指定的内容,以下我就记录一下这个find常用到的一些用法 find 语法:find   path   -option   [   -print ]   [ -exec   -ok   command ]   {}  \;
阳光岛主
2019/02/19
5.7K0
linux每日命令(22):find命令参数详解
文件名选项是find命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用。 可以使用某种文件名模式来匹配文件,记住要用引号将文件名模式引起来。 不管当前路径是什么,如果想要在自己的根目录$HOME中查找文件名符合*.log的文件,使用~作为 'pathname'参数,波浪号~代表了你的$HOME目录。
用户1214487
2018/12/13
1.5K0
linux每日命令(23):find命令之xargs
在使用 find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。
用户1214487
2018/11/21
1.3K0
Linux命令(31)——find命令
find命令用于在指定目录查找文件,可以指定一些匹配条件,如按文件名、文件类型、用户甚至是时间戳来查找文件。
恋喵大鲤鱼
2018/08/03
2K0
我在linux中高频使用的find命令回顾
1、通过扩展名查找文件 > find . -name "*.txt" > find / -name "*.log" 2、按文件名查找 > find / -name error.log > find / -name nginx.conf 3、按所属组所有者查找文件 查找~目录下所属组为rumenz的文件 > find ~ -group rumenz -print 查找~目录下所属者为rumenz的文件 > find ~ -user rumenz -print 查找属主账户已经被删除的文件,查找在/et
入门笔记
2022/06/02
5900
我在linux中高频使用的find命令回顾
linux每日命令(20):find命令概览
Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。
用户1214487
2018/12/12
5760
每天一个Linux命令之find命令
find命令是一个系统文件查找命令。说直白一点就是你想找什么文件,不需要一个目录一个目录去查找,直接使用这个命令,会根据你执行这个命令的参数,列举出符合你需要的文件。
兔云小新LM
2020/05/19
5820
Linux中如何找文件
说明:从指定路径下递归向下搜索文件,在不指定查找目录的情况下是对整个系统遍历查找。
用户8418197
2021/08/08
3.8K0
相关推荐
linux(七)之linux系统中查找文件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文