find命令的用法:
定义:在本地文件系统中执行实时搜索,查找符合命令行参数条件的文件。
使用格式:find 目标文件 匹配选项 匹配参数
find的第一个参数是要搜索的目录,若省略了目录参数,则find将从当前目录中开始搜索,并在任何子目录中查找匹配项。
find可以提供许多选项来准确的描述应查找的文件类型,可以根据文件名、文件大小、最近修改时间戳和其他文件特性的任意组合进行搜索。
eg:
find / -name sshd_config 在根目录和所有子目录中搜索名为sshd_config的文件
find / -name ‘*pass*’ 在/etc目录中搜索名称中任意位置包含pass的文件
find / -iname ‘*messages*’ -i表示忽略大小写
find可以根据所有权限来搜索文件,此时可使用的选项有-user、-group、-uid、-gid等
eg:
find / /home/student –user student 在/home/student目录下查找student用户所拥有的文件
find / /home/student –group student 在/home/student目录下搜索student组所拥有的文件
find / -user root –group mail
-perm选项用于查找具有特定权限集的文件
权限前面可以有/或-符号,带有/的数字权限将匹配文件的用户、组、其他人权限集中的至少一位,与/或-一起使用时,0值类似于通配符,表示“至少无任何内容的权限”
eg:
find /home –perm 644 匹配用户具有读写权限,组成员拥有读权限,其他人具有读权限
find /home –perm -724 匹配用户至少有读写执行权限,组成员至少写权限,其他人至少有读权限
find –perm -004
find 命令可以查找与指定的大小相符的文件,通过-size选项加上数字值与单位来指定
n :等于n的大小
+n:大于n的大小
-n :小于n的大小
与size使用的单位有:k 千字节 M 兆字节 G 千兆字节
eg:
find –size 10M 在当前目录下搜索大小为10M的文件
find –size +10M 在当前目录下搜索大小大于10M的文件
find –size -10M 在当前目录下搜索大小小于10M的文件
-size 单位修饰符将所有内容向上取整为一个单位,如find-size 1M将显示小于1MB的文件,因为它将所有文件都向上取整为1MB
-type 选项将搜索范围限制为给定的文件类型,类型有
f:普通文件
d:目录
l:软链接(符号链接)
b:块设备
eg:
find /etc –type f 搜索/etc 目录下的所有普通文件
find /etc –type d 搜索/etc文件夹中的所有目录
find /etc -type l 搜索/etc目录中的所有符号链接
find /dev –type b 搜索/dev目录中的所有设备的列表
-mmin 选项加上以分钟表示的时间,将搜索内容正好在过去所给时间更改的所有文件,
类似的还有-amin,-cmin
m表示修改modify,min表示分钟,a表示访问,c表示创建
-mtime 选项以天为单位,类似的有-ctime,-atime
eg:
find / -mmin 120 将搜索离修改时间刚好是120分钟的文件
find / -mmin +200 将查找在200分钟以前更改的所有文件
find / -mmin -150 将搜索离修改时间少于150分钟的所有文件
-links 选项加上数字将查找具有特定硬链接数的所有文件,苏子前面带有+修饰符将查找硬链接数超过所给数目的文件,若数字前面带有~修饰符,则搜索将限制为硬链接数小于所给数目的所有文件。
eg:
find / -type f –links +1 根目录下搜索硬链接数大于1的所有普通文件
复杂的用法:可以将搜索的文件执行另外的操作
eg:
find /usr/bin –size +50K –exec cp {}/tmp/bin \; 搜索/usr/bin/目录下大小为50K的所有文件,并将其复 制到/tmp/bin目录下
find /usr/bin –type f –exec rm –rf {}\; 搜索/usr/bin目录下的所有普通文件,并对它执行删除操作