一. find 概述
linux 中find命令在目录结构中搜索文件,并执行指定的操作,linux下find提供相当多的查找条件,功能很强大。由于find育有强大的功能,所以他的选项也很多,其中大部分选项都指得我们花时间来学习。
在运行一个非常消耗资源的find命令式,很多人倾向于把它放在后台,因为便利一个大的文件系统可能花费很长的时间(这里指30G字节以上的文件系统)
二. 命令格式
find pathname -options [-pront -exec -ok ...]
三. 命令功能
用于在文件树种查找文件,并做出响应的处理
四. 命令参数
- pathname: find命令所查找的目录路径,例如用. 表示当前目录,用/表示系统根路径
- -print: find命令将匹配到的文件输出到标准输出
- -exec:find命令对匹配的文件执行改参数所给出的shell命令。响应命令的形式为 ‘command’ {} ; 注意 :{}和; 之间有空格
- -ok :和-exec的作用相同,只不过一一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
五. 命令选项
- -name: 按照文件名进行查找
- -perm: 按照文件权限进行查找
- -prune:使用这一选项可以使find不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
- -user:按照文件属主来查找文件。
- -group:按照文件所属的组来查找文件。
- -mtime -n +n:按照文件的更改时间查找文件, -n:表示文件更改时间距离现在n天以内,+n: 表示文件更改时间距现在n天以前。 find命令还有-atime和 -ctime 选项。。。。。。。
- -nogourp:查找无有效属主的文件,即该文件所属的组在/etc/goups中不存在
- -nouser:茶渣无有效属主的文件,即该文件的属主在/etc/passwd中不存在
- -newer file ! file:查找更改时间比文件file1 新但比文件file2旧的文件。
- -type:查找某一类型的文件。例如:
b:块设备文件
d: 目录
c:字符设备文件
p:管道文件
l:符号链接文件
f:普通文件 - -size -n:[c]:查找文件长度为n块的文件,带有c时表示文件长度以字节计
- -fstype:查找位于某一类型文件系统中的文件,这些文件系统通长可以在配置文件/etc/fstab中找到。
- -mount:在查找文件时不跨越文件系统mount点。
- -follow:如果find命里遇到符号链接文件,就跟踪至连接所指向的文件。
- -cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中
另外,简单说一下下面三个的区别:
-: 以内 + 以外,以删除为例: -:删除5min以内的文件,+:删除5分钟以外的文件
- -amin n:查找系统中最后n分钟访问的文件。
- -atime n:查找系统中n*24(最少一天)小时访问的文件
- -cmin n: 查找系统中最后n分钟被改变文件状态的文件
- -ctime n:查找系统中最后n*24 小时被改变文件状态的文件
- -mmin n:查找系统中最后n 分钟被改变文件数据的文件
- -mtime n:查找系统中最后n*24 小时被改变文件数据的文件
六. 使用实例
6.1 查找指定时间内修改过的文件
命令:
find -attime 2
解释:
查找当前命令中修改超过48小时的文件
执行演示:
6.2 查找当前目录命令以.log结尾的文件
命令:
find . -name "*.log"
解释:
在当前目录下查找以.log结果的文件 “.”:代表当前目录
执行演示:
6.3 查找指定目录下权限为777的文件
命令:
find ./ -perm 777
解释:
查找当前目录下权限为777的文件
执行演示:
6.4:按类型查找 (查找当目录,以.log结尾的普通文件)
命令:
find . -type f -name "*.log"
执行演示:
6.5查找当前所有目录并排序
命令:
find . -type d | sort
执行演示:
6.6 按文件大小查找
命令:
find . -size +1000c -print
## 查找当前目录大于1K的文件
执行演示:
6.
命令:
执行演示:
6.
命令:
执行演示:
6.
命令:
执行演示:
6.
命令:
执行演示:
6.
命令: