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(以“分钟”为单位)

处理动作

扫描二维码关注公众号,回复: 9658154 查看本文章
参数 功能
-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

发布了15 篇原创文章 · 获赞 18 · 访问量 731

猜你喜欢

转载自blog.csdn.net/qq_42452450/article/details/104721449