find命令在本地文件系统中执行实时搜索,查找符合命令行参数条件的文件。find文件以您的用户账户身份查询文件系统中的文件。调用find命令的用户必须具有要查看其内容的目录的读取和执行的权限。

 

find命令的第一个参数是要搜索的目录。如果省略了目录参数,则find将从当前目录开始搜索,并在任何子目录中查找匹配项。

 

如果要搜索student用户的主目录,请为find提供其实目录/home/student。要搜索整个系统,请提供起始目录 /

 

find命令常的参数及选项:-

-name 选项加上文件名可以查找匹配所给文件名的文件,并返回所有完全匹配项。在system1上的 目录和所有子目录中搜索名为sshd_config 的文件,可运行:

wKioL1ZQbZjhFBYcAAASS55JbkU487.png

system1上的/etc/中查找名称任意位置包含pass的文件,可运行:

linux中 find命令的总结_第1张图片

-iname 对所有文件执行不区分大小写的搜索;在system1上的 中搜索不区分大小写的包含message的文件,可运行:

[root@system1 ~]# find / -inname '*message*'

/usr/share/adium/message-styles/Boxes.AdiumMessageStyle

/usr/share/adium/message-styles/PlanetGNOME.AdiumMessageStyle

/usr/share/adium/message-styles/Classic.AdiumMessageStyle

/usr/share/empathy/icons/hicolor/16x16/actions/im-message-new.png

/usr/share/empathy/icons/hicolor/16x16/status/im-message.png

/usr/share/empathy/icons/hicolor/22x22/actions/im-message-new.png

/usr/share/empathy/icons/hicolor/22x22/status/im-message.png

/usr/share/empathy/icons/hicolor/24x24/actions/im-message-new.png

 

-user 根据文件的所有者搜索

-group 根据文件的所属组搜索

-uid 根据文件uid编号搜索

-gid 根据文件gid编号搜索

system1上搜索所属组为adminuser的文件

[root@system1 ~]# find / -group adminuser

/home/harry

/home/harry/.mozilla

/home/harry/.mozilla/extensions

/home/harry/.mozilla/plugins

/home/harry/.bash_logout

/home/harry/.bash_profile

/home/harry/.bashrc

/home/saray

/home/saray/.mozilla

/home/saray/.mozilla/extensions

/home/saray/.mozilla/plugins

/home/saray/.bash_logout

/home/saray/.bash_profile

/home/saray/.bashrc

搜索root用户拥有的文件

[root@system1 ~]# find / -user root

……

/sys/module/psmouse/parameters/smartscroll

/sys/module/psmouse/parameters/resetafter

/sys/module/psmouse/uevent

/sys/module/nf_conntrack_ipv4

/sys/module/nf_conntrack_ipv4/srcversion

/sys/module/nf_conntrack_ipv4/notes

……

搜索用户id 1003 拥有的文件

[root@system1 ~]# find / -uid 1003

/home/saray

/home/saray/.mozilla

/home/saray/.mozilla/extensions

/home/saray/.mozilla/plugins

/home/saray/.bash_logout

/home/saray/.bash_profile

/home/saray/.bashrc

 

搜索组id 1003拥有的文件

[root@system1 ~]# find / -gid 1003

/home/silene

/home/silene/.mozilla

/home/silene/.mozilla/extensions

/home/silene/.mozilla/plugins

/home/silene/.bash_logout

/home/silene/.bash_profile

/home/silene/.bashrc

 

搜索harry用户和adminuser组拥有的文件

[root@system1 ~]# find / -user harry -group adminuser

/home/harry

/home/harry/.mozilla

/home/harry/.mozilla/extensions

/home/harry/.mozilla/plugins

/home/harry/.bash_logout

/home/harry/.bash_profile

/home/harry/.bashrc

 

-perm 用于查找具有特定权限集的文件。权限可以描述为八进制值,包含读、写、执行的421的某些组合。权限前面可以加上 或 号。

前面加上 的数字代表将匹配用户、组、其他人权限集中的至少一位。

前面加上 的数字代表匹配用户、组、其他人三段中每一段至少都匹配一位

例如:/222 r--r--r--不匹配,rw-r--r--匹配

      -222 r--r--r--rw-r--r--都不匹配,rw-rw-rw-则匹配

 

匹配用户具有读写执行权限,组成员具有读和执行权限且其他用户具有读和执行权限的任何文件

linux中 find命令的总结_第2张图片

 

 

匹配用户至少具有读写执行权限,并且组至少具有读和执行权限,并且其他人至少有读权限的任何文件

linux中 find命令的总结_第3张图片

匹配用户至少具有读权限,或者组至少具有读权限,或者其他人至少具有写权限的任意文件

linux中 find命令的总结_第4张图片

 

-size 查找与指定大小相符的文件,该大小是通过-size选项加上数字值与单位来指定。

K,表示千兆字节

M,表示兆字节

G,表示千兆字节

 

 

搜索大小等于10Mb的文件

[root@system1 ~]# find / -size 10M

/usr/share/icons/hicolor/icon-theme.cache

/usr/share/gnome-weather/gnome-weather.gresource

 

搜索大小大于10GB的文件

wKiom1ZQbebgrDagAAAaMA9Kv9w492.png

列出大小小于10GB的所有文件

[root@system1 ~]# find / -size -10G

……

/proc/37/net/rpc/auth.unix.gid/channel

/proc/37/net/rpc/auth.unix.gid/flush

/proc/37/net/rpc/auth.unix.ip

/proc/37/net/rpc/auth.unix.ip/content

/proc/37/net/packet

/proc/37/net/ip6_flowlabel

/proc/37/net/rt6_stats

/proc/37/net/dev_snmp6/team0

……

 

 

-mmin选项表示以分钟表示的时间,搜索在过去所给时间更改的所有文件

 

查找文件内容正好在20分钟以前更改的所有文件,可运行:

[root@system1 ~]# find / -mmin 20

 

查找在200分钟以前修改的所有文件

[root@system1 ~]# find / -mmin +200

 

查找在不到150分钟以前更改的所有文件

[root@system1 ~]# find / -mmin -150

 

 

-type选项将搜索范围限制为给定的文件类型

表示普通文件

表示目录

表示软连接

表示硬链接

 

搜索 /home文件夹中的所有目录

linux中 find命令的总结_第5张图片

 

搜索系统中所有软连接:

linux中 find命令的总结_第6张图片

 

 

system1上生成/dev 目录中所有块设备的列表

 

-link 选项加上数字表示查找具有特定硬链接数的所有文件,数字前带有表示将查找硬链接数超过所给数目的文件,-表示将查找硬链接数小于所给数目的所有文件。

 

 

system 1 上搜索硬连接数大于1的所有普通文件

[root@system1 ~]# find / -type f -links +1

……

/usr/libexec/getconf/POSIX_V6_LP64_OFF64

/usr/libexec/getconf/POSIX_V7_LP64_OFF64

/usr/libexec/getconf/XBS5_LP64_OFF64

/usr/libexec/postfix/lmtp

/usr/libexec/postfix/smtp

/usr/libexec/postfix/nqmgr

/usr/libexec/postfix/qmgr

/usr/libexec/anaconda/pyrc.pyc

/usr/libexec/anaconda/pyrc.pyo

……