1 命令格式:

$ find <指定目录> <指定条件> <指定动作>
 

最常见示例:查找文件名(忽略大小写)

$find . -iname sqlquery.java
 

1.1 <指定目录>:

所要搜索的目录及其所有子目录。默认为当前目录。find默认递归指定目录。目录可以有多个,目录之间要用空格分开。

[admin@r42h06016.xy2.xxx.com]$find /etc /tmp /root -name passwd
 

1.2 <指定条件>:

所要搜索的文件的特征。

[1]根据文件名查找
-name    按照文件名查找 
-iname   根据文件名查找,但是不区分大小写
-prune    不在当前指定的目录中查找 
-depth    在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找 
[2]根据文件所属用户和组来查找文件
-user     按照文件属主来查找文件

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

-group   按照文件所属的组来查找文件

$find / -group cat 		//查找在系统中属于group组名cat的文件 
 

[3]根据uid 和 gid来查找用户
-uid

#find  /tmp -uid 500       //查找uid是500 的文件
 

-gid

#find  /tmp -gid 1000      // 查找gid是1000的文件
 

[4]-a,-o,-not的使用
-a      连接两个不同的条件(两个条件必须同时满足)

#find /tmp -name "*.sh" -a -user root
 

-o     连接两个不同的条件(两个条件满足其一即可)

#find /tmp -name "*.sh" -o -user root
 

-not 对条件取反的

#find /tmp -not -user root
 

[5]根据文件时间戳的相关属性来查找文件
-atime   最近一次访问时间      单位:天
-mtime 最近一次内容修改时间  单位:天
-ctime  最近一次属性修改时间  单位:天
-amin  最近一次访问时间      单位:分钟
-mmin  最近一次内容修改时间  单位:分钟
-cmin  最近一次属性修改时间  单位:分钟
-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件 

  1.  
    #find /tmp -atime +5 //表示查找在五天内没有访问过的文件
  2.  
    #find /tmp -atime -5 //表示查找在五天内访问过的文件

[6]根据文件类型来查找文件
-type 查找某一类型的文件 
文件类型: 
f 普通文件 
d 目录 
l 符号链接文件 
c 字符设备文件 
p 管道文件 
b 块设备文件
s socket文件

#find /tmp -type s
 

[7]根据大小来查找文件
-size n[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计 

  1.  
    #find /tmp -size 2M //查找在/tmp 目录下等于2M的文件
  2.  
    #find /tmp -size +2M //查找在/tmp 目录下大于2M的文件
  3.  
    #find /tmp -size -2M //查找在/tmp 目录下小于2M的文件
$find . -size +1000000c        //在当前目录下查找文件长度大于1 M字节的文件
 
$find / -empty 		       //查找在系统中为空的文件或者文件夹 
 

[8]根据文件权限查找文件

-perm

  1.  
    #find /tmp -perm 755 //查找在/tmp目录下权限是755的文件
  2.  
    #find /tmp -perm +222 //表示只要有一类用户(属主,属组,其他)的匹配写权限就行
  3.  
    #find /tmp -perm -222 //表示必须所有类别用户都满足有写权限

[10]-nouser和-nogroup
-nogroup 查找无有效所属组的文件,即该文件所属的组不存在 
-nouser  查找无有效属主的文件

#find / -nogroup -a -nouser    //在整个系统中查找既没有属主又没有属组的文件(这样的文件通常是很危险的,作为系统工程师的我们应该及时清除掉)
 
$find / -nouser 	       //查找在系统中属于作废用户的文件 
 

1.3 <指定动作>:

对搜索结果进行特定的处理。

-print            //默认情况下的动作
-ls               //查找到后用ls 显示出来
-ok [commend]     //查找后执行命令的时候询问用户是否要执行
-exec [commend]   //查找后执行命令的时候不询问用户,直接执行

注意-ok和-exec命令将命令行上后续的参数作为他们参数的一部分,直到被\;序列终止。魔术字符串{}是-ok和-exec命令的一个特殊类型的参数,它将被当前文件的完整路径取代。

#find /tmp -atime +30 –exec rm –rf {} \; //删除查找到的超过30天没有访问过文件
 

这里要注意{ }的使用:替代查找到的文件

#find /tmp -name "*.old" | xargs chmod 700
 

2 命令举例

搜索/etc目录下的文件名包含del的文件。

$find /etc -name '*del*'
 

系统查找到"config.py"文件后即时在屏幕上显示"config.py"文件信息。

$find . -name "config.py" -ls
 

搜索当前目录中,所有过去10分钟中更新过的普通文件。如果不加-type f参数,则搜索普通文件+特殊文件+目录。

$ find . -type f -mmin -10
 
jpg 改 rar 

linux-find【递归搜索文件名】的更多相关文章

  1. linux下递归列出目录下的所有文件名(不包括目录)

    1.linux下递归列出目录下的所有文件名(不包括目录) ls -lR |grep -v ^d|awk '{print $9}'2.linux下递归列出目录下的所有文件名(不包括目录),并且去掉空行 ...

  2. Windows和linux环境下按文件名和字符串搜索命令

    Windows 1.遍历C盘下所有txt 命令:for /r c:\ %i in (*.txt) do @echo %i 注释:for 循环的意思 /r 按照路径搜索 c:\ 路径 %i in   ( ...

  3. linux 实用指令搜索查找类

    linux 实用指令搜索查找类 目录 linux 实用指令搜索查找类 find指令 locate指令 grep指令和管道符号 | find指令 说明 从指定目录向下递归地遍历其各个子目录,将满足条件的 ...

  4. 【C#】递归搜索指定目录下的指定项目(文件或目录)

    ---------------更新:201411201121--------------- 主要更新说明:将原bool recurse参数改为int depth,这样可以指定递归深度,而不是笼统的是否 ...

  5. C#递归搜索指定目录下的文件或目录

    诚然可以使用现成的Directory类下的GetFiles.GetDirectories.GetFileSystemEntries这几个方法实现同样的功能,但请相信我不是蛋疼,原因是这几个方法在遇上[ ...

  6. linux文件管理 文件搜索

    文件搜索命令find 'find [搜索范围] [搜索条件]' 搜索文件 find / -name install.log #避免大范围搜索,会非常消耗系统资源 #find是在系统当中搜索符合条件的文 ...

  7. Linux下的搜索命令grep(转)

    一.简介 grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具, ...

  8. Linux的文件搜索命令(locate ,find,grep,find命令和)

    刚开始学Linux,这是关于Linux文件搜索命令,就目前,尽我所能把他写全一点,后期随时补充 文件搜索命令 一.locate命令 二.find命令 三.grep命令 四.find命令和grep命令的 ...

  9. php嵌套数组递归搜索返回数组key

    var rewardTypes={"experience":{"\u7ecf\u9a8c\u503c":{"1":"\u660e\ ...

随机推荐

  1. linux下压缩与打包工具——gzip, bzip2 和 tar;

    以下内容来自:阿铭http://www.apelearn.com/study_v2/chapter11.html, 把常用的写出来了:感觉可以了: 只管压缩与解压缩的工具: gzip 工具: 用的时候 ...

  2. SQL数据查询之——嵌套查询

    一.概念描述 在SQL语言中,一个 SELECT-FROM-WHERE 语句称为一个查询块.将一个查询块嵌套在另一个查询块的 WHERE 子句或 HAVING 短语的条件中的查询称为 嵌套查询.例如: ...

  3. Java数组排序和插入

    如何排序数组并插入元素? 以下示例显示如何使用sort()方法和用户定义的insertElement()方法来完成此任务. package com.yiibai; import java.util.* ...

  4. c# 正则表达式 首字母转大写

    class Program { static void Main(string[] args) { // Input strings. const string s1 = "samuel a ...

  5. VS2015 applicationhost.config 本地域名访问

    .vs\config\applicationhost.config <?xml version="1.0" encoding="UTF-8"?> & ...

  6. iOS 模拟器的“调试-位置”总是变成无的问题

    选择项目的“Edit Scheme...” 并且选择“Options”选项卡,更改你喜欢的默认地理位置 你也可以编辑一个gpx文件永久保存坐标,或者在线生成(传送门). 转自:iOS Simulato ...

  7. 50.EasyGank妹纸App

    50.EasyGank妹纸App 前言 基于MVP模式下 , RxJava+RxAndroid+Retrofit的组合 . RxJava RxAndroid Retrofit Okhttp Gson ...

  8. Android中利用C++处理Bitmap对象

    相信有些Android&图像算法开发者和我一样,遇到过这样的状况:要对Bitmap对象做一些密集计算(例如逐像素的滤波),但是在java层写循环代码来逐像素操作明显是不现实的,因为Java代码 ...

  9. SharePoint 2013 处理videoplayerpage.aspx下的个人图片显示有误问题

    问题: Personal site's photo can't correct display in the videos page The url address of personal site' ...

  10. 内存管理 初始化(二)bootmem位图分配器建立 及 使用

    本地的笔记有点长,先把bootmem位图分配器的建立 及  使用过程做下梳理. 都是代码,上面做了标注.开始的汇编部分省略了(涉及的内容不多,除了swapper_pg_dir的分配). 该记录不会再添 ...