Linux中find常见用法示例

[root@localhost ~]# find  [PATH]  [option]  [action]

参数:

1. 与时间有关的参数:共有-atime、-ctime与-mtime,以-mtime为例:

-mtime n:n为数字,意义为在n天之前的“一天之内”被更改过的文件;

-mtime +n:列出在n天之前(不含n天本身)被更改过的文件名;

-mtime -n:列出在n天之内(含n天本身)被更改过的文件名;

-newer file:file为一个存在的文件,列出比file还要新的文件名。

+n代表大于等于n+1天前的文件名;

-n代表小于等于n天内的文件名;

n则是代表n~n+1那一天的文件名。

[root@localhost Desktop]# find  /  -mtime  0

[root@localhost Desktop]# find  /etc  -newer  /etc/passwd

2. 与用户或用户组名有关的参数:

-uid  n:n为数字,这个数字是用户的账号ID,即UID。UID记录在/etc/passwd中

-gid  n:n为数字,这个数字是用户组名的ID,即GID。GID记录在/etc/group中

-user name:name为用户帐号名称

-group name:name为用户组名称

-nouser:寻找文件的所有者不存在于/etc/passwd中的文件

-nogroup:寻找文件的所有用户组不存在于/etc/group中的文件

注:

如果系统里面某个账号删除了,该帐号在系统内已创建的文件即使用-nouser来查找。

[root@localhost Desktop]# find  /home  -user  vurtne

[root@localhost Desktop]# find  /  -nouser

3. 与文件权限及名称有关的参数:

-name filename:查找文件名为filename的文件

-size [+-]SIZE:查找比SIZE还要大(+)或小(-)的文件。

-type TYPE:查找文件的类型为TYPE的,类型主要有:

一般正规文件(f),设备文件(b,c),目录(d),

连接文件(l),socket(s)及FIFO(p)等属性。

-perm mode:查找文件权限“刚好等于mode权限“的文件

-perm -mode:查找文件权限“必须要全部包括mode权限“的文件

-perm +mode:查找文件权限”包含任一mode权限“的文件

[root@localhost Desktop]# find  /var  -type s

[root@localhost Desktop]# find  / -perm +7000

[root@localhost Desktop]# find  /bin  /sbin  -perm +6000

4. 其他可进行的操作:

-exec command {} \:  #将查到的文件执行command操作,

对每一个找到的文件执行command命令,并用文件替换"{}",“\;”是固定的结束符。

-print:将结果打印到屏幕上

[root@localhost Desktop]# find /  -perm  +7000  -exec  ls  -l  {}  \;

[root@localhost Desktop]# find  /  -size  +1000k

[root@localhost Desktop]# find  /etc  -name  '*httpd*'

[root@localhost Desktop]# find ./ -name '*.exe' -exec file {} \;  #找出当前文件夹下后缀是exe的文件,

并用file命令显示 每个文件的文件类型

-empty               #查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹

-false               #查找系统中总是错误的文件

-fstype type         #查找系统中存在于指定文件系统的文件,例如:ext2 .

-gidn               #查找系统中文件数字组 ID 为 n的文件

-depth                    #使查找在进入子目录前先行查找完本目录

-fstype                   #查更改时间比f1新但比f2旧的文件

-mount                    #查文件时不跨越文件系统mount点

-follow                   #如果遇到符号链接文件,就跟踪链接所指的文件

-cpio                     #对匹配的文件使用cpio命令,将他们备份到磁带设备中

-prune                    #忽略某个目录

-ok 和 -exec相同,只不过在操作前要询用户

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

①通过文件名查找法:

find / -name http.conf         在根目录下查找文件“httpd.conf”,就会得到这个文件的路径

②根据部分文件名查找法:

find /etc -name '*.conf'       在/etc目录下查找以".conf"结尾的文件

③根据文件特征查找:

如果只知道某个文件的大小,修改日期等特征也可以使用“find”命令查找出来。

a.)  find / -size 1500c # 在根目录下查找大小为1500bytes的文件,字符c表明这个要查找的文件

大小以bytes为单位。

b.)  find / -size +100c # 在根目录下查找大小超过100bytes的文件,命令中的“+”是表示要

求系统只列出大于指定大小的文件,而使用“-”则表示要求系统列出小

于指定大小的文件。

 c.) find / -amin -10     # 查找在系统中最后10分钟访问的文件

 d.) find / -atime -2     # 查找在系统中最后48小时访问的文件

 e.) find / -empty        # 查找在系统中为空的文件或者文件夹

 f.) find / -group cat    # 查找在系统中属于组cat的文件

 g.) find / -mmin -5      # 查找在系统中最后5分钟里修改过的文件

 h.) find / -mtime -1     # 查找在系统中最后24小时里修改过的文件

 i.) find / -nouser       # 查找在系统中属于作废用户的文件

 j.) find / -user fred    # 查找在系统中属于FRED这个用户的文件

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

find命令也提供给用户一些特有的选项来控制查找操作。下面是一些最基本,最常用的find命令的控制选项及其用法。

-daystart      # 测试系统从今天开始24小时以内的文件,用法类似-amin

-depth         # 使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容

-follow        # 遵循通配符链接方式查找; 另外,也可忽略通配符链接方式查询

-help          # 显示命令摘要

-mount         # 不在文件系统目录中查找, 用法类似 -xdev.

-noleaf        # 禁止在非UNUX文件系统,MS-DOS系统,CD-ROM文件系统中进行最优化查找

-version       # 打印版本数字

-maxdepth levels     # 在某个层次的目录中按照递减方法查找,限制find命令在目录中按照递减方

式查找文件的时候搜索文件超过某个级别或者搜索过多的目录,这样导致查找

速度变慢,查找花费的时间过多。

find . -maxdepth 2 -name fred      # 限制find只能查找两层目录下的文件

④使用混合查找方式查找文件:

通过"-and"把两个查找选项链接起来组合成一个混合的查找方式,在/tmp目录中查找大于100000000

字节并且在48小时内修改的某个文件。

find /tmp -size +10000000c -and -mtime +2

通过"-or"把两个查找选项链接起来组合成一个混合的查找方式,在/目录中查找属于fred用户或者

george用户的文件。

find / -user fred -or -user george

find /tmp ! -user panda         # 在/tmp目录中查找所有不属于panda的文件

find /tmp/ -ctime +7 -delete         # 删除/tmp目录下一周以前创建的文件

⑤查找并显示文件信息的方法:

find / -name "httpd.conf" -ls

⑥无错误查找:

find / -name access_log 2>/dev/null

这个方法是把查找错误提示转移到特定的目录中。系统执行这个命令后,遇到错误的信息就直接输

送到stderrstream 2中,access_log 2 就是表明系统将把错误信息输送到stderrstream 2

中,/dev/null是一个特殊的文件,表明空的或者错误的信息,这样查询到的错误信息将被转移了,

不会再显示了。

Linux之find查找命令的更多相关文章

  1. Linux 执行文件查找命令 which 详解

    某个文件不知道放在哪里了,通常可以使用下面的一些命令来查找: which  查看可执行文件的位置 whereis 查看文件的位置 locate   配合数据库查看文件位置 find   实际搜寻硬盘查 ...

  2. linux下find查找命令用法

    Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时 ...

  3. linux下面的查找命令

    在linux下面经常用查找命令,我自己最常用的是find whereis locate 关于find 我常用find的基本功能,如 find / -name filename 在某个目录下寻找文件. ...

  4. Linux学习之查找命令汇总

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:        which  查看可执行文件的位置.       whereis 查看文件的位置.         ...

  5. linux 5个查找命令

    1. find find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件. find的使用格式如下: $ find <指定目录> <指定条件> <指定动作> ...

  6. Linux下的查找命令which、whereis、locate、find(6/20)

    Linux下查找相关命令主要有以下4个:which.whereis.locate.find. (1)which   [-a]    cmdname1 cmdname2 ...... 命令参数: -n  ...

  7. 【Linux】如何查找命令及历史记录history

    如何查找命令及历史记录 文章目录 如何查找命令及历史记录 1.如何找到一个命令 2.命令的历史记录 3.一些实用的快捷键 4.小结 5.参考资料 如何找到一个命令.命令的历史记录.一些实用的快捷键.总 ...

  8. Linux的六种查找命令

    http://www.ruanyifeng.com/blog/2009/10/5_ways_to_search_for_files_using_the_terminal.html 1. find fi ...

  9. Linux系列之查找命令

    前言 Linux 有四个常用的查找命令:locate.whereis.which 和 find.本文介绍它们的区别和简单用法. locate命令 这个命令将检查你的整个文件系统,并找到该关键词的每一次 ...

  10. linux中的查找命令

    which命令:使用which命令可以看到某个系统命令是否存在,以及执行的到底是哪一个位置上的命令.在PATH指定的路径中进行搜索, 返回第一个搜索结果. which grep /bin/grep   ...

随机推荐

  1. java读取properties文件的几种方法

    一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取 Properties p=new Properties(); ...

  2. JS学习:JavaScript的核心

    分享到 分类 JS学习   发布 ourjs  2013-12-02 注意 转载须保留原文链接,译文链接,作者译者等信息.     作者: JeremyWei  原文: JavaScript The ...

  3. 团队作业5-Alpha版本测试报告

    1.在测试过程中总共发现了多少Bug?每个类别的Bug分别为多少个? 修复的Bug: a. 修复的bug: 页面打开后比例改变: 出现中文乱码: 点击按钮时不能响应: 导航栏加入显示错误: 上传图片后 ...

  4. 使用Fabric自动化你的任务

    Fabric是一个Python库,可以通过SSH在多个host上批量执行任务.你可以编写任务脚本,然后通过Fabric在本地就可以使用SSH在大量远程服务器上自动运行.这些功能非常适合应用的自动化部署 ...

  5. 深入理解JAVA I/O系列三:字符流详解

    字符流为何存在 既然字节流提供了能够处理任何类型的输入/输出操作的功能,那为什么还要存在字符流呢?容我慢慢道来,字节流不能直接操作Unicode字符,因为一个字符有两个字节,字节流一次只能操作一个字节 ...

  6. 解决nginx+uWSGI部署Django时遇到的static文件404的问题

    昨天是利用Django自带的runserver部署的服务器,但是由于runserver比较不稳定,因此决定采用uWSGI+nginx进行部署. 昨天已经安装好了uwsgi和nginx,使用该指令打开8 ...

  7. CPU结合CS、IP寄存器进行执行程序

    上一篇介绍了CS.IP两个寄存器内容,当我们运行一个可执行文件时,我们需要另外一个程序来将这个可执行文件加载到内存当中,关于这个加载可执行文件的程序,我们在这里不管他,点一下即可,一般是通过操作系统的 ...

  8. .NET 切面编程 PostSharp

    目录 概念 实现方式 .Net平台的切面实现 PostSharp示例 概念 Aspect-Oriented Programming(AOP):想想OOP是不是有些熟悉,AOP翻译过来的意思就是面向切面 ...

  9. command symbol & mac & emoji

    command symbol & mac & emoji how to input command symbol in mac ? https://apple.stackexchang ...

  10. mybatis的mapper参数传递

    简单参数传递 简单参数传递是指: 传递单个基本类型参数,数字类型.String 传递多个基本类型参数 parameterType 属性可以省略: 传递单个基本类型参数  SQL语句中参数的引用名称并不 ...