功能说明:查找文件或目录。语 法:find [目录...][-amin ][-anewer ][-atime <24小时数>][-cmin ][-cnewer ][-ctime <24小时数>][-daystart][-depth][-empty][-exec ][-false][-fls ][-follow][-fprint ][-fprint0 ][-fprintf ][-fstype ][-gid ][-group ][-help][-ilname ][-iname ][-inum ][-ipath ][-iregex ][-links ][-lname ][-ls][-maxdepth ][-mindepth ][-mmin ][-mount] [-mtime <24小时数>][-name ][-newer ][-nogroup][noleaf] [-nouser][-ok ][-path ][-perm ][-print][-print0][-printf ][-prune][-regex ][-size ][-true][-type ][-uid ][-used ][-user ][-version][-xdev][-xtype ]补充说明:find指令用于查找符合条件的文件。任何位于参数之前的字符串都将被视为欲查找的目录。参 数: -amin 查找在指定时间曾被存取过的文件或目录,单位以分钟计算。 -anewer 查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录。 -atime<24小时数> 查找在指定时间曾被存取过的文件或目录,单位以24小时计算。 -cmin 查找在指定时间状态被更改的文件或目录。 -cnewer 查找其状态更改时间较指定文件或目录的状态更改时间更接近现在的文件或目录。 -ctime<24小时数> 查找在指定时间状态被更改的文件或目录,单位以24小时计算。 -daystart 以本日“开始”计算时间。 -depth 从指定目录下最深层的子目录开始查找。 -empty 寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录。 -exec {} \; 假设find指令的回传值为true,就执行该指令。 -false 将find指令的回传值皆设为false。 -fls 此参数的效果和指定"-ls"参数类似,但会把结果保存在指定的文件中。 -follow 排除符号连接。 -fprint 此参数的效果和指定"-print"参数类似,但会把结果保存在指定的文件中。 -fprint0 此参数的效果和指定"-print0"参数类似,但会把结果保存在指定的文件中。 -fprintf 此参数的效果和指定"-printf"参数类似,但会把结果保存在指定的文件中。 -fstype 只寻找该文件系统类型下的文件或目录。 -gid 查找符合指定群组识别码的文件或目录。 -group 查找符合指定群组名称的文件或目录。 -help或--help 在线帮助。 -ilname 此参数的效果和指定"-lname"参数类似,但忽略字符大小写的差别。 -iname 此参数的效果和指定"-name"参数类似,但忽略字符大小写的差别。 -inum 查找符合指定的inode编号的文件或目录。 -ipath 此参数的效果和指定"-ipath"参数类似,但忽略字符大小写的差别。 -iregex 此参数的效果和指定"-regexe"参数类似,但忽略字符大小写的差别。 -links 查找符合指定的硬连接数目的文件或目录。 -lname 指定字符串作为寻找符号连接的范本样式。 -ls 假设find指令的回传值为true,就将文件或目录名称列出到标准输出。 -maxdepth 设置最大目录层级。 -mindepth 设置最小目录层级。 -mmin 查找在指定时间曾被更改过的文件或目录,单位以分钟计算。 -mount 此参数的效果和指定"-xdev"相同。 -mtime<24小时数> 查找在指定时间曾被更改过的文件或目录,单位以24小时计算。 -name 指定字符串作为寻找文件或目录的范本样式。 -newer 查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录。 -nogroup 找出不属于本地主机群组识别码的文件或目录。 -noleaf 不去考虑目录至少需拥有两个硬连接存在。 -nouser 找出不属于本地主机用户识别码的文件或目录。 -ok 此参数的效果和指定"-exec"参数类似,但在执行指令之前会先询问用户,若回答"n"或"N",则放弃执行指令。 -path 指定字符串作为寻找目录的范本样式。 -perm 查找符合指定的权限数值的文件或目录。 -print 假设find指令的回传值为true,就将文件或目录名称列出到标准输出。格式为每行一个名称。
-print0 假设find指令的回传值为true,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行。 -printf 假设find指令的回传值为true,就将文件或目录名称列出到标准输出。格式可以自行指定。 -prune 不寻找字符串作为寻找文件或目录的范本样式。 -regex 指定正则表达式作为寻找文件或目录的范本样式。 -size 查找符合指定的文件大小的文件。 -true 将find指令的回传值皆设为true。 -type 只寻找符合指定的文件类型的文件。 -uid 查找符合指定的用户识别码的文件或目录。 -used 查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算。 -user 查找符合指定的拥有者名称的文件或目录。 -version或--version 显示版本信息。 -xdev 将范围局限在先行的文件系统中。 -xtype 此参数的效果和指定"-type"参数类似,差别在于它针对符号连接检查。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
用find查找文件时要避开某一个目录(这个目录包含在所要搜索的路径中)的方法:
方法1:
find / -path "/etc" -prune -o -name passwd -print
方法2:
find / -wholename "/etc" -prune -o -name passwd -print
针对文件模式"/etc"使用 -wholename 测试,如果该模式已找到,-prune 可防止 find 下到该目录中。布尔类型“-o”使 find 可以针对其他目录处理该命令的其余部分。由于每个表达式之间有一个假设的隐式 and 运算符 (-a),因此,如果左侧的表达式计算结果为 false,and 之后的表达式将不进行计算;因此需要 -o 运算符。find 还支持布尔类型 -not、!,就像使用括号
用find查找文件时避开多一个目录
find / \( -path /etc -o -path /usr \) -prune -o -name passwd -print (括号与-path之间有空格,这点要注意,还有的就是目录不能写成/etc/只能写成/etc,记住,不要加多一个斜杠)
只在当前文件系统查找
find / -mount -name passwd -print
find / -xdev -name passwd -print
find还可以用-a(and 与),-o(or 或),!(非),连接多个匹配选项,达到逻辑判断的目的。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
find -name april* 在当前目录下查找以april开头的文件
find -name april* fprint filename 在当前目录下查找以april开头的文件,并把结果输出到filename中
find -name ap* -o -name may* 查找以ap或may开头的文件
find /mnt -name tom.txt -fstype vfat 在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
find /mnt -name t.txt ! -fstype vfat 在/mnt下查找名称为tom.txt且文件系统类型不为vfat的文件
find /tmp -name wa* -type l 在/tmp下查找名为wa开头且类型为符号链接的文件
find /home -mtime -2 在/home下查最近两天内改动过的文件
find /home -atime -1 查1天之内被访问过的文件
find /home -mmin +60 在/home下查60分钟前改动过的文件
find /home -amin +30 查最近30分钟前被存取过的文件
find /home -newer tmp.txt 在/home下查更新时间比tmp.txt近的文件或目录
find /home -anewer tmp.txt 在/home下查访问时间比tmp.txt近的文件或目录
find /home -used -2 列出文件或目录被改动过之后,在2日内被存取过的文件或目录
find /home -user cnscn 列出/home目录内属于用户cnscn的文件或目录
find /home -uid +501 列出/home目录内用户的识别码大于501的文件或目录
find /home -group cnscn 列出/home内组为cnscn的文件或目录
find /home -gid 501 列出/home内组id为501的文件或目录
find /home -nouser 列出/home内不属于本地用户的文件或目录
find /home -nogroup 列出/home内不属于本地组的文件或目录
find /home -name tmp.txt -maxdepth 4 列出/home内的tmp.txt 查时深度最多为3层
find /home -name tmp.txt -mindepth 3 从第2层开始查
find /home -empty 查找大小为0的文件或空目录
find /home -size +512k 查大于512k的文件
find /home -size -512k 查小于512k的文件
find /home -links +2 查硬连接数大于2的文件或目录
find /home -perm 0700 查权限为700的文件或目录
find /tmp -name tmp.txt -exec cat {} \;
find /tmp -name tmp.txt -ok rm {} \;
8459

被折叠的 条评论
为什么被折叠?



