find [OPTIONS] [查找起始路径] [查找条件] [处理动作]
- OPTIONS参数: -P、-L、-H,控制软连接的对待方式,用的不多;
- 查找起始路径: 就是要查找的目录路径,相对路径和绝对路径都可以;
- 查找条件: -name 、 -type 、 -size 、 -mtime……以下再做详细说明;
- 处理动作: -print 、 -ls 、 -delete 、 -exec COMMAND {} \; ……以下再做详细说明。
查找条件的详细说明并举例
一、 根据文件名称查找
- -name “PATERN” : 根据文件名称查找;
- -iname “PATERN” : 根据文件名称查找( 不区分名称字母大小写 );
- -regex PATTERN : 基于正则表达式的模式查找,匹配的是整个路径,而非单个文件名;
二、根据文件的类型查找
- -type f :普通文件;
- -type d :目录文件;
- -type l :符号链接文件;
- -type b :块设备文件;
- -type c :字符设备文件;
- -type p :管道文件;
- -type s :套接字文件;
三、 根据文件的大小查找 -size [+|-] [k|M|G]
1、1k时:a3只有15个字节,也被算做1k来查询,即条件符合大于零k,小于等于1k;
2、+1k时:a和a1满足大于1k的条件;
3、-62k时:只有a3满足大于等于零k,小于等于 61k的要求。
四、 根据文件的时间戳查找
- -atime : 文件的最后访问时间;
- -mtime : 文件的最后修改时间;
- -ctime : 文件(权限)最后改变时间;
以-mtime为例说明如下:
- -mtime +n : 对文件数据的最近一次修改是在(n+1)*24 小时及其之前的所有时间内, 等价于最后修改时间与当前的时间差大于等于(n+1)*24小时;
- -mtime n : 对文件数据的最近一次修改是在 n*24 小时之前的24 小时内,等价于最后修改时间与当前的时间差大于等于 n*24小时,小于(n+1)*24小时;
- -mtime -n : 对文件数据的最近一次修改是在 n*24 小时内, 等价于最后修改时间与当前的时间差小于 n*24小时;
#以下两条命令的效果是等价的 find /www/01h_net/ -mtime 2 -type f -ls find /www/01h_net/ -mtime +1 -mtime -3 -type f -ls
time是以24小时为单位,min是以分钟为单位,如: -amin 、 -mmin 、 -cmin 。
五、查找时避开指定的子目录
find /www/wdlinux/web -path "/www/wdlinux/web/wp-content" -prune -o -print
以上命令将会查找/www/wdlinux/web目录下除wp-content子目录以外的所有文件。
#避开多个指定的子目录 find /www/wdlinux/web \( -path /www/wdlinux/web/wp-content -o -path /www/wdlinux/web/wp-admin \) -prune -o -print
注意:避开子目录的语句必须紧跟在目标目录后面,通常来讲也就是放在其他查询条件的前面,例如:
find /www/wdlinux/web \( -path /www/wdlinux/web/wp-content -o -path /www/wdlinux/web/wp-admin \) -prune -o -type f -mtime -2 -print
处理动作说明
- -print:输出至标准输出,默认动作;
- -ls:输出文件的详细信息,类似于对查找到的文件执行“ls -l”命令;
- -delete:删除查找到的文件;
- -fls /PATH/TO/SOMEFILE:把查找到的所有文件的长格式信息保存至指定文件中;
- -ok COMMAND {} \; :对查找到的每个文件执行由COMMAND表示的命令,每次操作都由用户进行确认;
- -exec COMMAND {} \; :对查找到的每个文件执行由COMMAND表示的命令;