Linux入门——Linux里的那些查找命令——find命令(Ubuntu)

Find命令

简介

基本信息:
名称:find
英文:search for files in a directory hierarchy
路径:/bin/find
权限:所有用户
功能:在目录中查找文件

find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

语法

find [OPTION]… [查找路径] [查找条件] [处理动作]

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

查找条件
参数功能
-maxdepthlevel最大搜索目录深度,指定目录为第1级
-mindepthlevel最小搜索目录深度
-name “文件名称”支持使用glob*, ?, [], [^]
-iname"文件名称"不区分字母大小写
-inum n按inode号查找
-samefile name相同inode号的文件
-links n链接数为n的文件
-regex “PATTERN”以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称
-user USERNAME查找属主为指定用户(UID)的文件
-group GRPNAME查找属组为指定组(GID)的文件
-uidUserID查找属主为指定的UID号的文件
-gidGroupID查找属组为指定的GID号的文件
-nouser查找没有属主的文件
-nogroup查找没有属组的文件

type参数

参数功能
f普通文件
d目录文件
l符号链接文件
s套接字文件
b块设备文件
c字符设备文件
p管道文件

组合条件

参数功能
-a
-o
-not, !
示例
其他查找方式

按文件大小查找

语法描述
#UNIT: (#-1, #]如:6k 表示(5k,6k]
-#UNIT:[0,#-1]如:-6k 表示[0,5k]
+#UNIT:(#,∞)如:+6k 表示(6k,∞)

注:常用单位:k, M, G,c(byte)

按照时间查找

语法描述
#[#,#+1)
+#[#+1,∞]
-#[0,#)
-atime查询access time(以“天”为单位)
-mtime查询modify time(以“天”为单位)
-ctime查询change time(以“天”为单位)
-amin查询access time(以“分钟”为单位)
-mmin查询modify time(以“分钟”为单位)
-cmin查询change time(以“分钟”为单位)

处理动作

参数功能
-exec COMMAND {} \对查找到的每个文件执行由COMMAND指定的命令
示例

查找/var目录下属主为root,且属组为mail的所有文件

原理:利用find命令中的-user和-group配合与操作

root@liuyan-virtual-machine:~# find /var -user root -a -group mail -ls
   660417      4 drwxrwsr-x   2 root     mail         4096 2月 10  2019 /var/mail

查找/var目录下不属于root、lp、gdm的所有文件

原理:利用find命令配合非运算

root@liuyan-virtual-machine:~# find /var -not -user root -not -user lp -not -user gdm -ls
  1050125      4 drwxr-xr-x   4 colord   colord       4096 2月 24 17:32 /var/lib/colord
  1051626      4 drwx------   2 colord   colord       4096 2月 24 17:32 /var/lib/colord/.cache

查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是man的文件

原理:利用find命令配合-time以及与非运算即可

root@liuyan-virtual-machine:~# find /var -ctime -7 -a -not -user root -a -not -user man -ls
   655569      4 drwxr-xr-x   2 systemd-timesync systemd-timesync     4096 2月 24 17:31 /var/lib/private/systemd/timesync
   655570      0 -rw-r--r--   1 systemd-timesync systemd-timesync        0 3月  7 21:40 /var/lib/private/systemd/timesync/clock

查找/etc目录下小于1M且类型为普通文件的所有文件

原理:利用find命令配合-size命令和-type命令操作

root@liuyan-virtual-machine:~# find /etc -size -1M -a  -type f -ls
   263441      0 -rw-r--r--   1 root     root            0 2月 10  2019 /etc/dictionaries-common/ispell-default
   263883      0 -rw-r--r--   1 root     root            0 8月  7  2017 /etc/newt/palette.original
   262786      0 -rw-r--r--   1 root     root            0 2月 10  2019 /etc/apparmor.d/local/usr.sbin.cups-browsed
   262787      0 -rw-r--r--   1 root     root            0 2月 10  2019 /etc/apparmor.d/local/usr.sbin.cupsd
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪千颜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值