1.我们为什么要学会使用find命令?

每一种操作系统都由成千上万的文件组成,对于linux这样“一切皆文件”的操作系统来说更不例外,大家应该都能很轻松使用windows下的文件查找功能,但是对linux这一功能可能并不是很熟悉,其实想玩linux的你更要牢牢掌握这个命令,因为linux不像windows那样有固定的文件名后缀,并且因为linux阵营下百家争鸣的特性,一个相同的文件在不同的发行版,可能会有不同,所以如果你能牢牢掌握find命令的使用,你在摸索linux的道路上将会顺利很多,同时你会发现linux下文件查找功能其实很简单,而且要比windows下查找功能强大很多很多!

Linux下查找文件的命令有两个:locate 和 find

2.find命令的详细说明






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

查找路径 默认为当前目录
查找条件 默认为查找指定路径下的所有文件
处理动作 默认为显示

按文件名称查找
命令:find /etc/ -name group 找出/etc下名称为group的文件

命令:find /etc/ -name *.conf 找出所有以.d为后缀的文件

命令:find /etc/ -name *.conf | grep wc -l找出所有以.d为后缀的文件并且统计行数

按照文件的用户和用户组查找
find /opt/ -user root 找出/opt目录下用户为root的文件

find /opt/ -group root 找出/opt目录下用户组为root的文件

命令:find /mnt/ -group root -o -user root找出/mnt目录下用户组为root或者用户为root的文件
(–o表示或者,–a表示并且,默认为并且可以不输入)

按文件目录层数查找
命令:find /etc/ -maxdepth 3 -mindepth 2 -name passwd找出/etc下深度最大为3,最小为2且叫passwd的文件

按文件大小查找
命令:find /etc -size 10k 查找/etc下大小为10k的文件并且统计个数

命令:find /etc -size -10k 查找/etc下大小小于10k的文件并且统计个数

命令:find /etc -size -10k 查找/etc下大小大于10k的文件并且统计个数

按文件类型查找

d 目录
l 软链接,快捷方式
s socket ,套接字符
b block块设备
c 字符设备
  • find /etc/ -type d查找/etc下的目录

  • find /etc/ -type f查找/etc下的文件

  • find /etc/ -type l查找/etc下的软连接

    按文件修改时间查找

find /etc -cmin 15   /etc目录下距现在15分钟创建修改的文件
find /etc -cmin -15     /etc目录下15分钟以内创建修改的文件
find /etc -cmin +15    /etc目录下15分钟以后创建修改的文件
find /etc -ctime -10    /etc目录下10天以内创建修改的文件
find /etc -ctime +10   /etc目录下10天以外创建修改的文件

按文件权限时间查找

find /etc -perm -444     权限中包括rrr的文件
find /etc -perm /444    权限中有用户r,组r或者其他人o为r的文件
find /etc -perm -444 -exec chmod o-r {} \ ;     查找到包含444的文件并将其他用户r去掉
  • 查找/tmp目录下文件名为passwd的文件find /tmp -name “passwd”
  • 查找/tmp目录下文件名以passwd开头的文件,passwd不区分大小写find /tmp -iname “passwd*”
  • 查找/tmp目录下属主为keyso的文件find /tmp -user keyso
  • 查找/tmp目录下属组为keyso的文件find /tmp -group keyso
  • 查找/tmp目录下UID为502的文件find /tmp -uid 502
  • 查找/tmp目录下GID为502的文件find /tmp -gid 502
一个普通用户例如keyso创建了/tmp/keyso.txt,该文件属主和属组都是keyso
但当keyso用户被删除之后,/tmp/keyso.txt文件的属主和属组会发生变化
此种情况无法再根据属主为keyso这个被删除用户查找到/tmp/keyso.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)
  • 查找/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 \)

linux下find命令的详细说明相关推荐

  1. linux中的ps fx命令,Linux下ps命令详解 Linux下ps命令的详细使用方法

    Linux下ps命令详解 1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断 ...

  2. linux环境下ps命令行,Linux下ps命令详解 Linux下ps命令的详细使用方法

    Linux下ps命令详解 Linux上进程有5种状态:1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运 ...

  3. Linux高频命令汇总,Linux下高频命令分类辑录(基本使用篇)

    本文目的:总结linux下常用命令的基本使用方法 文件权限: 文档权限设置命令:chmod 数字模式: 文档权限由-rwxrwxrwx十个字符组成,其中第一个代表文档类型,后面九个字符按照顺序分为三组 ...

  4. linux系统退出当前计算节点命令,Linux下60个系统命令详细解.doc

    Linux下60个系统命令详细解 嵌入式学习指引--Linux下60个系统命令详细解 Linux为用户提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权 ...

  5. 嵌入式linux完整top命令,linux下top命令详细介绍

    top 命令是 Linux 下常用的系统资源占用查看及性能分析工具,能够实时显示系统中各个进程的资源(比如cpu.内存的使用)占用状况,top命令的执行结果是一个动态显示过程,即可以通过用户按键来不断 ...

  6. Linux查看WAS的jvm信息,linux 下使用命令查看jvm信息

    java程序员除了编写业务代码之外,特别是项目上线之后,更需要关注的是系统的性能表现,这个时候就需要了解一下jvm的性能表现了,可以借助于java虚拟机自带的一些分析工具,主要有三个常用的命令. 1. ...

  7. Linux下的命令总结笔记(二)

    说在前面的话: 本文是以笔记的形式呈现,那么其内容也将会有一个更新的过程.其命令也为亲测内容,大家可以放心使用(蓝色字体部分除外,蓝色部分为未测试或测试后未验证).如果有一些什么问题,可以给我留言. ...

  8. linux下安装DB2的详细步骤

    我也是才学习,在网上找了一个在linux下安装DB2 的步骤,共享给大家看看了. linux下安装DB2的详细步骤! 第一步:检查程序包及其版本 在软件包管理中查看下列软件包是否安装,如没有安装,先安 ...

  9. linux下scp命令详解

    http://www.cnblogs.com/xuxm2007/archive/2010/08/04/1792179.html linux下scp命令详解 http://www.9usb.net/20 ...

  10. Linux下查找命令

    转载自  Linux下查找命令 一.Linux查找文件的相关命令 常 用 命 令 简要中文说明 程序所在目录 more 分页显示一个文件或任何输出结果 /bin less 分页显示一个文件并且可以回头 ...

最新文章

  1. Google又放大招:高效实时实现视频目标检测 | 技术头条
  2. 自动驾驶场景下的高效激光里程计
  3. u盘锁电脑_Win10电脑无法识别U盘?这5步操作就能轻松搞定,收藏备用
  4. Android开发神器:OkHttp框架源码解析
  5. 微软Silverlight 3正式版已经出炉
  6. win8系统关闭共享服务器,Windows8系统关闭Windows Media Player网络共享服务的方法
  7. Java中的CopyOnWrite
  8. php编译 ftp,无需重新编译php加入ftp扩展的解决方法
  9. c ++类成员函数_仅使用C ++创建具有公共数据成员的类
  10. 获取硬盘总容量,柱面数,磁道数,扇区数
  11. Excel VBA - 文件及目录操作
  12. java unsafe park_Java魔法类——Unsafe应用解析
  13. C++/CLI学习入门数组
  14. 计算机里的e盘 不能应用,我的电脑里的e盘打不开是怎么回事
  15. Asp.Net集成支付宝当面付接口报ISV权限不足
  16. 关于艾宾浩斯曲线的一点思考
  17. MeasureSpec介绍及使用详解
  18. Looking up JNDI object with name [LOGGING_PATTERN_LEVEL]
  19. BZOJ-1827 [Usaco2010 Mar]gather 奶牛大集会
  20. 488. 祖玛游戏【我亦无他唯手熟尔】

热门文章

  1. PIC单片机c语言休眠,PIC16F72 休眠程序
  2. 深度技术官网linux,深度系统
  3. 磁盘是随机存储设备,但不是随机存储器(RAM)。为什么?
  4. 国产系统银河麒麟(龙芯MIPS)远程访问自研windows程序
  5. 住宅IP和机房IP有什么区别,爬虫用哪种好?
  6. Google推荐的图片加载库Glide介绍
  7. u盘server2012服务器系统安装,如何安装原版Windows server 2012?U盘安装原版Windows server 2012方法...
  8. 2、51单片机——I2C 总线
  9. 信息安全-保研面试经历总结
  10. 点连通度与边连通度的求解