常用的文件查找命令有:which,locate,find

1.which命令

查找二进制数或二进制命令,由PATH给出

2.loacte

特点:

1.非实时,每天在系统上生成数据库,通过数据库查询

2.模糊查询

3.updatedb,实时查询需要进行数据的更新,更新一般需要几分钟时间,所以一般是在晚上

4.查找速度快

3.find

特点:

1.实时查找

2.文件遍历

3.精确匹配

4.速度较慢

查找方式:

3.1 根据文件名查找

-name:

-iname:

find ./ -name "test"

3.2 根据文件的属主,属主查找

-user:属主

-group:属组

-uid:根据文件的uid实现精确查找

-gid:根据文件的gid实现精确查找

-nouser,-nogroup:对于已经被删除用户名或用户组的文件,系统只会保留相应的gid,uid号码用以标识,而如果此时新建一个用户名就用可能取得某些文件的管理权限,出于安全的考虑,所以要对这些文件进行查找,保证安全

3.3 命令的组合用法

与:-a

或:-o

非:-not,-!

3.4 根据文件类型进行查找:-type [文件类型]

f:普通文件

d:目录文件

l:符号链接文件

s:套接字文件

b:块处理设备文件

c:字符设备文件

p:管道文件

find /var -type s  #查找/var下的套接字文件

3.5 根据文件大小进行查找

-size [+或-] [文件大小]

查找比SIZE还要大(+)或者小(-)的文件

文件大小的表示:c:代表byte,k:代表1024bytes,M:代表1024k

3.6 根据文件的时间进行查找

1.mtime:当文件的“内容数据” 更改时,就会更新这个时间。内容数据指的是文件的内容,而不是文件的属性与权限

2.ctime:当文件的状态发生变化时,就会更新这个数据,比如:权限与属性发生变化

3.atime:当文件的内容被读取时,就会更新这个时间

以天为单位:-ctime,-atime,-mtime

以分钟为单位:-cmin,-amin,-mmin

例:

1.从现在开始到24小时之前有过改动的文件全部列出来

find / -mtime 0

2.寻找/etc下面的文件,如果文件日期比/etc/passwd新就列出来

-newer用在分辨两个文件之间的新旧关系

find /etc -newer /etc/passwd

3.寻找四天前的那一天被改动的文件

find /var -mtime 4

4.四天之内被改动过的文件

find /var -mctime -4

+4:代表大于等于五天前的文件名:find /var -mtime +4

-4: 代表小于等于四天内的文件名

4:代表4~5天那一天的文件

3.7 根据文件权限进行查询:-prem [option]

1.-perm mode

精确查找,文件权限正好等于mode,mode为类似于chmod的属性值

2.-perm -mode

每一类对象都必须拥有其指定的权限标准

3.-perm /mode

任何一类(u,g,o)对象的权限只要有一位匹配即可

find . -perm /u+w,g+w
find . -perm /u=w,g=w
find . -perm /220
find . -perm -444 -perm /222 ! -perm /111
find . -perm -a+r -perm /a+w ! -perm /a+x

3.8 其他相关命令

1.-exec command:

command 为其他命令,-exec可以接其他的命令来处理查询结果

2.-delete:删除查找到的文件

3.-fls /path/to/somefile:

查找到的文件的长格式信息保存至指定的文件夹

find /var/log -ctime -4 -fls /tmp/test/abc

4.-ok command {} :

对查找的文件执行由command指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认

5.-exec command {} :

对查找到的每个文件执行由command执行的命令

{}:用于引用查找到的文件名称自身;注意:find传递查找到的文件至后面指定的命令时,查找到的所有符合的文件一次性传递给后面的命令

3.9 练习

1.查找/var 目录下属主为root,且属组为mail的所有文件或目录并列出

find /var -user root -group mail -ls

2.查找/usr 目录下不属于root、bin、hadoop的所有文件或目录

find /usr -not -user root -not -user hadoop -not -user bin -ls
find /usr -not \( -user root -o -user hadoop -o -not -user bin \) -ls

3.查找/etc目录下最近一周内其内容修改过,同时属主不为root,也不为hadoop的文件或目录

find /etc -mtime -7 -a -not \( -user root -o -user hadoop \) -ls

4.查找当前系统上没有属主或属组,且最近一周内曾被访问过的文件或目录

find / -ctmie -7 -a -nouser -a nogroup

5.查找/etc目录下大于1M且类型为普通文件的所有文件

find /etc -size +1M -a -type f -ls

6.查找/etc目录下所有用户都没有写权限的文件

find /etc -not -perm /222 -ls

7.查找/etc目录下至少有一类用户没有执行权限的文件

find /etc -not -perm -111 -ls

8.查找/etc/init.d/目录下,所有用户都有执行权限,且其他用户有写权限的文件

find /etc/init.d -prem /113 -ls

9.查找/tmp/test/y目录下在100分钟内修改过的文件,并删除

find /tmp/test/y -cmin -100 -print | xargs /bin/rm -fr
find /tmp/test/y -cmin -100 -delete
find /tmp/test/y -cmin -100 -ok rm -fr '{}' \; #需要询问
find /tmp/test/y -cmin -100 -exec rm -fr '{}' \;

10.查找/var/log目录下为文件类型且在10分钟内被修改过的文件,并列出

 find /var/log -type f -cmin -10 -exec ls -l '{}' \;

11.查找/var/log下的在四天内被修改过的文件并把它们的长格式信息保存至/tmp/test/abc

find /var/log -ctime -4 -fls /tmp/test/abc

linux下文件查找工具--find的更多相关文章

  1. Linux操作系统的文件查找工具locate和find命令常用参数介绍

    Linux操作系统的文件查找工具locate和find命令常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.非实时查找(数据库查找)locate工具  locate命 ...

  2. Linux下文件查找命令find笔记

    在Linux命令下如果需要快速自己系统所需要处理的文件,可以通过find命令快速进行检索. 如果想在某个路径下查找相应的文件可以执行如下命令: find path -name filename # p ...

  3. Python实现Linux下文件查找

    import os, sys def search(curpath, s): L = os.listdir(curpath) #列出当前目录下所有文件 for subpath in L: #遍历当前目 ...

  4. Linux文件查找工具之find “大宝剑”--转载

    原文地址:http://xinzong.blog.51cto.com/10018904/1749465 一.文件查找工具常用软件 locate: locate命令其实是find -name的另一种写法 ...

  5. Linux下快速查找文件

    1 locate 查找内容.查找数据库,updatedb命令更新数据库 2 which 命令 3 find 路径 -name 查找内容.find命令会磁盘查找,比较耗时. 4 grep 查找内容一般为 ...

  6. Linux下不借助工具实现远程linux服务器上传下载文件

    # Linux下不借助工具实现远程linux服务器上传下载文件 ## 简介 - Linux下自带ssh工具,可以实现远程Linux服务器的功能- Linux下自带scp工具,可以实现文件传输功能 ## ...

  7. Linux下文件搜索、查找、查看命令

    Linux下文件搜索.查找.查看命令 1.最强大的搜索命令:find 查找各种文件的命令 2.在文件资料中查找文件:locate 3.搜索命令所在的目录及别名信息:which 4.搜索命令所在的目录及 ...

  8. linux下C++开发工具

    就C++开发工具而言,与Windows下微软(VC, VS2005等)一统天下相比,Linux/Unix下C++开发,可谓五花八门,各式各样.Emacs, vi, eclipse, anjuta,kd ...

  9. linux 两个查找工具 locate,find详解

    linux 中有很多查找工具,今天主要讲解locate,find两个工具. 1.locate (1)查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db 注意:如果这 ...

随机推荐

  1. 使用jedis实现Redis消息队列(MQ)的发布(publish)和消息监听(subscribe)

    前言: 本文基于jedis 2.9.0.jar.commons-pool2-2.4.2.jar以及json-20160810.jar 其中jedis连接池需要依赖commons-pool2包,json ...

  2. [0] 解决版本冲突-使用SVN主干与分支功能

    解决版本冲突-使用SVN主干与分支功能 1  前言 大多数产品开发存在这样一个生命周期:编码.测试.发布,然后不断重复.通常是这样的开发步骤: 1)    开发人员开发完毕某一版本(如版本A)功能后, ...

  3. js实现数据流(日志流,报警信息等)滚动展示,并分页(含实现demo)

    在项目中有遇到,后台向前端推送数据,前端以数据流的形式展示,即来一条我增加一条,类似于日志,报警等信息展示,想必大部分人都有遇到过,本来出于想找一个好的展示方式的心态,因为感觉自己设计的不太好看,结果 ...

  4. chrome谷歌浏览器-DevTool开发者工具-详细总结

    目录: 一.概述 1.官方文档 2.打开方法: 3.前言: 二.九个模块: 1.设备模式Device Mode 2.元素面板Elements 3.控制台面板Console 4.源代码面板Sources ...

  5. response.sendRedirect页面跳转的方法总结——实习第六天

    今天想到要写这个博客完全是因为今天在这上面摔了一跤,同时也意识到了对于一个学Java的人来讲,知其然并且知其所以然是有多么的重要. 今天报了一个错误,讲的是空指针异常,原因就是在response.se ...

  6. System.Runtime.Serialization.SerializationException”类型的未经处理的异常在 System.Runtime.Serialization.dll 中发生

    异常信息: “System.Runtime.Serialization.SerializationException”类型的未经处理的异常在 System.Runtime.Serialization. ...

  7. Streaming输入输出

    Structured Streaming 输入输出 输入 SparkSession.readStream() 返回一个 DataStreamReader 接口对象,可以通过该对象对输入源进行参数配置, ...

  8. Structured-Streaming之窗口操作

    Structured Streaming 之窗口事件时间聚合操作 Spark Streaming 中 Exactly Once 指的是: 每条数据从输入源传递到 Spark 应用程序 Exactly ...

  9. 2.vue 安装教程

    安装node.js 从node.js官网下载并安装node,安装过程很简单,一路"下一步"就可以了(傻瓜式安装). 安装完成之后,打开命令行工具,输入 node -v,如下图,如果 ...

  10. Error detected while processing function CheckFoam256 问题的解决

    今天在打开OpenFOAM的constant文件的时候, vim-OpenFOAM-syntax插件遇到了如下问题: Error detected while processing function ...