1、find
命令作用:搜索文件或目录
命令格式:find [搜索范围] [匹配条件]
1.1、在指定路径下搜索关键字对应的文件或目录
命令格式: find [搜索范围] -name "[关键字] "
在/tmp/song目录下面搜索qinghuaci.txt文件,执行命令:
find /tmp/song/ -name "qinghuaci.txt"
此种查询方式是全部匹配,并且大小写要一致。
1.2、在指定路径下模糊匹配关键字对应的文件或目录
命令格式: find [搜索范围] -name "*[关键字] *"
*通配符,可以匹配任意字符。
- qing* 表示关键字是以qing开头;
- *qing 表示关键字是以qing结尾;
- *qing*表示关键字中包含qing;
查询以qing开头的文件或目录,执行命令:
find /tmp/song/ -name "qing*"
查询包含yaogun的文件或目录,执行命令:
find /tmp/song/ -name "*yaogun*"
?通配符,可以匹配任意一个字符。
- qingtian?? 表示关键字以qing开头,后面跟两个字符。
执行命令:
find /tmp/song/ -name "qingtian??"
以上命令查询都是严格区分大小写的。
如果想忽略大小写查询 需要使用 -iname,执行命令:
find /tmp/song/ -iname "tiantiande"
注意:最好不要在服务器运行高峰时使用查找命令。find命令占用内存较高,因此为了减少内存使用。搜索的范围越小越好,搜索条件越精准越好。
1.3、根据所有者查找文件或目录
命令格式:find [搜索范围] -user [所有者名]
查找所有者为zhoujielun的文件或目录,执行命令:
find /tmp/song/ -user zhoujielun
1.4、根据所属组查找目录或文件
命令格式:find [搜索范围] -group [所属组名]
查找所属组为shuaige的文件或目录,执行命令:
find /tmp/song/ -group shuaige
1.5、根据文件大小查找
命令格式:find [搜索范围] -size {+-}[数据块]
数据块前面符号含义:
- +表示查找大于这个大小的文件;
- -表示查找小于这个大小的文件;
- 不加符号表示查找等于这个大小的文件(一般不用);
数据块大小说明:一个数据块=512字节=0.5K
因此要查找大于100MB的文件,数据块应该设置为100*1024/0.5=204800。
执行命令:
find /etc -size +204800
从图中可以看出来,并没有大于100M和10M以上的文件。大于1M的文件有四个。
1.6、根据时间查找被访问的文件或目录
命令格式:find [搜索范围] -amin {+-}[时间]
- a表示access;
- 时间单位是分钟;
- +N表示N分钟以前,-N表示N分钟以内;
查找/tmp/song目录下面,30分钟以内访问的目录或文件。执行命令:
find /tmp/song/ -amin -30
1.7、根据时间查找被修改过属性的文件和目录
命令格式:find [搜索范围] -cmin [时间]
c表示change,其中被修改过属性可以理解为ls -l中的信息被更改。
执行命令:
find /tmp/song -cmin -10
1.8、根据时间查找被修改过内容的文件和目录
命令格式:find [搜索范围] -mmin [时间]
m表示modify。
执行命令:
find /tmp/song -mmin -10
1.9、多条件同时查找
例如上面根据文件大小查找的命令。
查找大于10M的文件,执行命令:
find /etc -size +20480
查找小于100M的文件,执行命令:
find /etc -size -204800
如果现在想同时查询大于10M小于100M的文件,则需要使用命令进行联合查询。
- -a:同时满足条件;
- -o:满足其中的一个条件即可;
执行命令:
find /etc -size -204800 -a -size +20480
1.10、查找指定类型的文件
-type 根据不同类型查找
- f:文件;
- d:目录;
- l:软链接;
查找包含yao的目录或文件,忽略文件大小写限制。执行命令:
find /tmp/song/ -iname "*yao*"
在查找的同时指定只查找文件,执行命令:
find /tmp/song/ -iname "*yao*" -a -type f
在查找的同时指定只查找目录,执行命令:
find /tmp/song/ -iname "*yao*" -a -type d
因为有2个条件需要同时满足,所以要使用-a连接命令。并且使用-type来区分不同的文件类型。
1.11、对查询结果执行命令
命令格式:find [搜索范围] -name [关键字] -exec [其他命令] {} \;
参数说明:
- -exec 对查找结果进行命令操作;
- -ok 用于询问操作,一般在删除操作的时候使用;
注意:在使用exec或ok命令的时候,其后面的{} \; 不能少。{}和\之间必须要有一个空格,\和;之间不能有空格。
执行命令:
find /tmp/song/ -iname "*yao*" -a -type f -exec ls -l {} \;
执行结果如下图所示:
执行命令:
find /tmp/song/ -iname "*yao*" -a -type f -ok rm {} \;
对于查找到的文件进行删除命令,并且要提示。执行结果如下图所示:
1.12、根据i节点查找
命令格式:find [搜索范围] -inum [i节点值]
执行命令:
find /tmp/song/ -inum 663188 -ok rm {} \;
执行结果如下图所示:
从图中可以看到,tiantiande这个文件的i节点值是663188 ,通过命令删除后,再次查看,提示没有文件或目录了。