find命令在本地文件系统中执行实时搜索,查找符合命令行参数条件的文件。find文件以您的用户账户身份查询文件系统中的文件。调用find命令的用户必须具有要查看其内容的目录的读取和执行的权限。
find命令的第一个参数是要搜索的目录。如果省略了目录参数,则find将从当前目录开始搜索,并在任何子目录中查找匹配项。
如果要搜索student用户的主目录,请为find提供其实目录/home/student。要搜索整个系统,请提供起始目录 /。
find命令常的参数及选项:-
-name 选项加上文件名可以查找匹配所给文件名的文件,并返回所有完全匹配项。在system1上的 / 目录和所有子目录中搜索名为sshd_config 的文件,可运行:
在system1上的/etc/中查找名称任意位置包含pass的文件,可运行:
-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 用于查找具有特定权限集的文件。权限可以描述为八进制值,包含读、写、执行的4、2和1的某些组合。权限前面可以加上 / 或 - 号。
前面加上 / 的数字代表将匹配用户、组、其他人权限集中的至少一位。
前面加上 - 的数字代表匹配用户、组、其他人三段中每一段至少都匹配一位
例如:/222 r--r--r--不匹配,rw-r--r--匹配
-222 r--r--r--和rw-r--r--都不匹配,rw-rw-rw-则匹配
匹配用户具有读写执行权限,组成员具有读和执行权限且其他用户具有读和执行权限的任何文件
匹配用户至少具有读写执行权限,并且组至少具有读和执行权限,并且其他人至少有读权限的任何文件
匹配用户至少具有读权限,或者组至少具有读权限,或者其他人至少具有写权限的任意文件
-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的文件
列出大小小于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选项将搜索范围限制为给定的文件类型
f 表示普通文件
d 表示目录
l 表示软连接
b 表示硬链接
搜索 /home文件夹中的所有目录
搜索系统中所有软连接:
在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
……