find 命令功能非常的强大,支持的参数很多,这里简单讲解一些平时常用的命令
查找命令的基本格式为:
** find [查找范围] [查找条件] **
查找范围
可以使用全路经,也可以使用相对路径
查找条件
按文件名查找
格式:-name filename
和 -iname filename
-name
查找是完全匹配,如果要查使用模糊查找,需要做两件事情:1. 文件名使用引号,2. 使用通配符。3种通配符:
- * : 匹配任意多个任意字符
- ? : 匹配0个或1个任意字符
- [] : 匹配括号中的任意字符
touch abc abd abe abf #新建4个文件:abc abd abe abf
find . -name abc #在当前目录查找abc 文件,完全匹配:abc
find . -name "*[cd]" #在当前目录查找 c或d结尾的文件,模糊匹配:abc, abd
若想忽略文件大小写时,使用-iname
,用法同 -name
按时间查找
格式:-mtime time
和 -atime time
和 -ctime time
区别:
-mtime
修改文件的时间-atime
文件访问的时间-ctime
修改文件属性的时间
find . -mtime +10 #查找10天之前修改的文件(不包括第10天)
find . -mtime 10 #查找过去第10天修改的文件
find . -mtime -10 #查找10天之内的修改文件(不包括第10天)
注:
-mtime 后面是过去的时间,‘+’表示大于,‘+10’表示过去10天之前; ‘-’表示小于,‘-’表示过去10天之内;
按所属用户查找
格式: -user username
或者 -nouser
find . -user root #查找属于用户root的文件
find . -nouser #查找没有任何用户属性的文件
如果查找不属于任何用户的文件,使用-nouser
,因为linux系统中所有文件都应该有所属用户,所以没有所属用户的文件都是垃圾文件(除了内核文件和外部文件如U盘, 他们可能没有所属文件)
按文件大小查找
格式: -size size
find . -size 10k # 文件大小为10k, k单位小写
find . -size +2M # 文件大于2M ,M单位大写
多条件搜索
格式:使用-o
或 -a
连接
-o
:or,或的关系
-a
:and,与的关系,可以默认关系,可以省略
find . -size -10M -o -size + 100M #查找大于100M或者小于10M的文件
find . mtime -10 -a -user www-data #查找10天内,属于www-data用户的文件
find . mtime -10 -user www-data #与上同,省略 -a
对搜索出来的文件进一步处理
格式:-exec/-ok 命令 {} \;
若需要对搜索出来的文件进一步处理,使用 -exec
或者是-ok
命令
find . -name '*conf' -exec ls -lh {} \; #查找以conf结尾的文件的详细信息
find . -name "*test*" -exec rm {} \; #删除所有文件名包含test的文件
本节内容参考视频: http://www.imooc.com/video/4048
网友评论