linux命令—find查找文件

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

你可能感兴趣的:(linux命令—find查找文件)