美文网首页linux常用命令
linux命令—find查找文件

linux命令—find查找文件

作者: hellowenqi | 来源:发表于2016-12-23 15:11 被阅读44次

    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查找文件

        本文链接:https://www.haomeiwen.com/subject/walkvttx.html