<div id="cnblogs_post_body" class="blogpost-body cnblogs-markdown"><a name="_labelTop"></a><div id="navCategory"><p style="font-size:18px"><b>阅读目录(Content)</b></p><ul class="first_class_ul"><li><a href="#_label0">一. 命令格式</a></li><li><a href="#_label1">二. 命令功能</a></li><li><a href="#_label2">三. 参数说明</a></li><li><a href="#_label3">四. 参数选项</a></li><li><a href="#_label4">五. 使用实例</a></li><ul class="second_class_ul"><li><a href="#_lab2_4_0">1. 查找2天内被读取过的文件</a></li><li><a href="#_lab2_4_1">2. 在当前目录下查找.log结尾的文件</a></li><li><a href="#_lab2_4_2">3. 查找home目录下 ,权限为777的文件</a></li><li><a href="#_lab2_4_3">4. 查找home目录下以.log结尾的文件或目录</a></li><li><a href="#_lab2_4_4">5. 查找当前目录下文件大小大于5个字节的文件</a></li></ul></ul></div><p>Linux下find命令在目录结构中搜索文件,并执行指定的操做。Linux下find命令提供了至关多的查找条件,功能很强大。因为find具备强大的功能,因此它的选项也不少,其中大部分选项都值得咱们花时间来了解一下。即便系统中含有网络文件系统( NFS),find命令在该文件系统中一样有效,只你具备相应的权限。 在运行一个很是消耗资源的find命令时,不少人都倾向于把它放在后台执行,由于遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。</p> <div style="text-align: right"><a href="#_labelTop">回到顶部(go to top)</a><a name="_label0"></a></div><h1 id="一.-命令格式">一. 命令格式</h1> <pre><code class="hljs lua"><span class="hljs-built_in">find</span> <span class="hljs-built_in">path</span> -option [ -<span class="hljs-built_in">print</span> ] [ -exec -ok command ] {} \;</code></pre> <div style="text-align: right"><a href="#_labelTop">回到顶部(go to top)</a><a name="_label1"></a></div><h1 id="二.-命令功能">二. 命令功能</h1> <p>Linux find命令用来在指定目录下查找文件。任何位于参数以前的字符串都将被视为欲查找的目录名。若是使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。而且将查找到的子目录和文件所有进行显示。</p> <div style="text-align: right"><a href="#_labelTop">回到顶部(go to top)</a><a name="_label2"></a></div><h1 id="三.-参数说明">三. 参数说明</h1> <p>find 根据下列规则判断 path 和 expression(运算式),在命令列上第一个 - ( ) , ! 以前的部份为 path,以后的是 expression。若是 path 是空字串则使用目前路径,若是 expression 是空字串则使用 -print 为预设 expression。<br> 你可使用 ( ) 将运算式分隔,并使用下列运算。</p> <p>exp1 -and exp2</p> <p>! expr</p> <p>-not expr</p> <p>exp1 -or exp2</p> <p>exp1, exp2</p> <table> <thead> <tr class="header"> <th>参数</th> <th>描述</th> </tr> </thead> <tbody> <tr class="odd"> <td>path</td> <td>find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。</td> </tr> <tr class="even"> <td>-print</td> <td>find命令将匹配的文件输出到标准输出。</td> </tr> <tr class="odd"> <td>-exec</td> <td>find命令对匹配的文件执行该参数所给出的shell命令。-exec command {} ; 将查到的文件执行command操做,注意{} 和 ;之间有空格</td> </tr> <tr class="even"> <td>-ok</td> <td>和-exec的做用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每个命令以前,都会给出提示,让用户来肯定是否执行。</td> </tr> </tbody> </table> <div style="text-align: right"><a href="#_labelTop">回到顶部(go to top)</a><a name="_label3"></a></div><h1 id="四.-参数选项">四. 参数选项</h1> <table> <thead> <tr class="header"> <th>命令</th> <th>说明</th> </tr> </thead> <tbody> <tr class="odd"> <td>-name name</td> <td>按照文件名查找名为name的文件。-iname会忽略大小写</td> </tr> <tr class="even"> <td>-path p</td> <td>: 路径名称符合 p 的文件,-ipath 会忽略大小写</td> </tr> <tr class="odd"> <td>-perm</td> <td>按照文件权限来查找文件。</td> </tr> <tr class="even"> <td>-prune</td> <td>使用这一选项可使find命令不在当前指定的目录中查找,若是同时使用-depth选项,那么-prune将被find命令忽略。</td> </tr> <tr class="odd"> <td>-user</td> <td>按照文件属主来查找文件。</td> </tr> <tr class="even"> <td>-group name</td> <td>按照文件所属的组group,查找group为name的文件。</td> </tr> <tr class="odd"> <td>-gid n</td> <td>gid为n的文件</td> </tr> <tr class="even"> <td>-mtime -n +n</td> <td>按照文件的更改时间来查找文件, -n表示文件更改时间距如今n天之内,+n表示文件更改时间距如今n天之前。</td> </tr> <tr class="odd"> <td>-nogroup</td> <td>查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。</td> </tr> <tr class="even"> <td>-nouser</td> <td>查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。</td> </tr> <tr class="odd"> <td>-newer file1 ! file2</td> <td>查找更改时间比文件file1新但比文件file2旧的文件。</td> </tr> <tr class="even"> <td>-type</td> <td>查找某一类型的文件,诸如:b - 块设备文件。d - 目录。c - 字符设备文件。p - 管道文件。l - 符号连接文件。f - 普通文件。</td> </tr> <tr class="odd"> <td>-size n [c]</td> <td>查找文件长度为n块的文件,带有c时表示文件长度以字节计。</td> </tr> <tr class="even"> <td>-pid n</td> <td>process id 是 n 的文件</td> </tr> <tr class="odd"> <td>-depth</td> <td>在查找文件时,首先查找当前目录中的文件,而后再在其子目录中查找。</td> </tr> <tr class="even"> <td>-fstype</td> <td>查找位于某一类型文件系统中的文件,这些文件系统类型一般能够在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。</td> </tr> <tr class="odd"> <td>-empty</td> <td>空的文件</td> </tr> <tr class="even"> <td>-mount, -xdev</td> <td>只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件</td> </tr> <tr class="odd"> <td>-follow</td> <td>若是find命令遇到符号连接文件,就跟踪至连接所指向的文件。</td> </tr> <tr class="even"> <td>-cpio</td> <td>对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。</td> </tr> <tr class="odd"> <td>-amin n</td> <td>查找系统中最近 n 分钟内被读取过的文件</td> </tr> <tr class="even"> <td>-atime n</td> <td>查找系统中最近n天内被读取过的文件</td> </tr> <tr class="odd"> <td>-cmin n</td> <td>查找系统中最近 n 分钟内被改变文件状态的文件</td> </tr> <tr class="even"> <td>-ctime n</td> <td>查找系统中最近n天内被改变文件状态的文件</td> </tr> <tr class="odd"> <td>-mmin n</td> <td>查找系统中最近n分钟内被改变文件数据的文件</td> </tr> <tr class="even"> <td>-mtime n</td> <td>查找系统中最近n天内被改变文件数据的文件</td> </tr> </tbody> </table> <p>跟时间有关的参数</p> <ul> <li>-n 表示距如今n个单位时间之内,+n表示距如今n个单位时间之前</li> </ul> <div style="text-align: right"><a href="#_labelTop">回到顶部(go to top)</a><a name="_label4"></a></div><h1 id="五.-使用实例">五. 使用实例</h1> <div style="text-align: right"><a name="_lab2_4_0"></a></div><h2 id="查找2天内被读取过的文件">1. 查找2天内被读取过的文件</h2> <p>命令:</p> <pre><code class="hljs lua"><span class="hljs-built_in">find</span> -atime <span class="hljs-number">-2</span></code></pre> <p>输出:</p> <pre><code class="hljs lua">[root@localhost home]# <span class="hljs-built_in">find</span> -atime <span class="hljs-number">-2</span> . ./test ./<span class="hljs-number">1.</span><span class="hljs-built_in">log</span> ./<span class="hljs-number">2.</span><span class="hljs-built_in">log</span></code></pre> <div style="text-align: right"><a name="_lab2_4_1"></a></div><h2 id="在当前目录下查找.log结尾的文件">2. 在当前目录下查找.log结尾的文件</h2> <p>命令:</p> <pre><code class="hljs lua"> <span class="hljs-built_in">find</span> . -name <span class="hljs-string">"*.log"</span></code></pre> <p>或</p> <pre><code class="hljs lua"><span class="hljs-built_in">find</span> -name <span class="hljs-string">"*.log"</span></code></pre> <p>输出:</p> <pre><code class="hljs lua">[root@localhost home]# ls <span class="hljs-number">1.</span><span class="hljs-built_in">log</span> <span class="hljs-number">2.</span><span class="hljs-built_in">log</span> <span class="hljs-number">3.</span>c test [root@localhost home]# <span class="hljs-built_in">find</span> . -name <span class="hljs-string">"*.log"</span> ./<span class="hljs-number">1.</span><span class="hljs-built_in">log</span> ./<span class="hljs-number">2.</span><span class="hljs-built_in">log</span> [root@localhost home]# <span class="hljs-built_in">find</span> -name <span class="hljs-string">"*.log"</span> ./<span class="hljs-number">1.</span><span class="hljs-built_in">log</span> ./<span class="hljs-number">2.</span><span class="hljs-built_in">log</span></code></pre> <p>说明:</p> <p>"." 表明当前目录<br> find 命令 不指定path时,默认是当前目录</p> <div style="text-align: right"><a name="_lab2_4_2"></a></div><h2 id="查找home目录下-权限为777的文件">3. 查找home目录下 ,权限为777的文件</h2> <p>命令:</p> <pre><code class="hljs lua"> <span class="hljs-built_in">find</span> /home/ -perm <span class="hljs-number">777</span></code></pre> <p>输出:</p> <pre><code class="hljs less"><span class="hljs-selector-attr">[root@localhost home]</span># <span class="hljs-selector-tag">ll</span> <span class="hljs-selector-tag">total</span> <span class="hljs-selector-tag">0</span> <span class="hljs-selector-tag">-rw-r--r--</span>. <span class="hljs-selector-tag">1</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">0</span> <span class="hljs-selector-tag">Nov</span> <span class="hljs-selector-tag">14</span> <span class="hljs-selector-tag">17</span><span class="hljs-selector-pseudo">:55</span> <span class="hljs-selector-tag">1</span><span class="hljs-selector-class">.log</span> <span class="hljs-selector-tag">-rw-r--r--</span>. <span class="hljs-selector-tag">1</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">0</span> <span class="hljs-selector-tag">Nov</span> <span class="hljs-selector-tag">14</span> <span class="hljs-selector-tag">17</span><span class="hljs-selector-pseudo">:55</span> <span class="hljs-selector-tag">2</span><span class="hljs-selector-class">.log</span> <span class="hljs-selector-tag">-rw-r--r--</span>. <span class="hljs-selector-tag">1</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">0</span> <span class="hljs-selector-tag">Nov</span> <span class="hljs-selector-tag">14</span> <span class="hljs-selector-tag">18</span><span class="hljs-selector-pseudo">:00</span> <span class="hljs-selector-tag">3</span><span class="hljs-selector-class">.c</span> <span class="hljs-selector-tag">drwxr-xr-x</span>. <span class="hljs-selector-tag">2</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">6</span> <span class="hljs-selector-tag">Nov</span> <span class="hljs-selector-tag">14</span> <span class="hljs-selector-tag">17</span><span class="hljs-selector-pseudo">:55</span> <span class="hljs-selector-tag">test</span> <span class="hljs-selector-attr">[root@localhost home]</span># <span class="hljs-selector-tag">find</span> /<span class="hljs-selector-tag">home</span>/ <span class="hljs-selector-tag">-perm</span> <span class="hljs-selector-tag">777</span> <span class="hljs-selector-attr">[root@localhost home]</span># <span class="hljs-selector-attr">[root@localhost home]</span># <span class="hljs-selector-tag">chmod</span> <span class="hljs-selector-tag">777</span> <span class="hljs-selector-tag">3</span><span class="hljs-selector-class">.c</span> <span class="hljs-selector-attr">[root@localhost home]</span># <span class="hljs-selector-tag">find</span> /<span class="hljs-selector-tag">home</span>/ <span class="hljs-selector-tag">-perm</span> <span class="hljs-selector-tag">777</span> /<span class="hljs-selector-tag">home</span>/<span class="hljs-selector-tag">3</span><span class="hljs-selector-class">.c</span> <span class="hljs-selector-attr">[root@localhost home]</span># <span class="hljs-selector-tag">ll</span> <span class="hljs-selector-tag">total</span> <span class="hljs-selector-tag">0</span> <span class="hljs-selector-tag">-rw-r--r--</span>. <span class="hljs-selector-tag">1</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">0</span> <span class="hljs-selector-tag">Nov</span> <span class="hljs-selector-tag">14</span> <span class="hljs-selector-tag">17</span><span class="hljs-selector-pseudo">:55</span> <span class="hljs-selector-tag">1</span><span class="hljs-selector-class">.log</span> <span class="hljs-selector-tag">-rw-r--r--</span>. <span class="hljs-selector-tag">1</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">0</span> <span class="hljs-selector-tag">Nov</span> <span class="hljs-selector-tag">14</span> <span class="hljs-selector-tag">17</span><span class="hljs-selector-pseudo">:55</span> <span class="hljs-selector-tag">2</span><span class="hljs-selector-class">.log</span> <span class="hljs-selector-tag">-rwxrwxrwx</span>. <span class="hljs-selector-tag">1</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">0</span> <span class="hljs-selector-tag">Nov</span> <span class="hljs-selector-tag">14</span> <span class="hljs-selector-tag">18</span><span class="hljs-selector-pseudo">:00</span> <span class="hljs-selector-tag">3</span><span class="hljs-selector-class">.c</span> <span class="hljs-selector-tag">drwxr-xr-x</span>. <span class="hljs-selector-tag">2</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">6</span> <span class="hljs-selector-tag">Nov</span> <span class="hljs-selector-tag">14</span> <span class="hljs-selector-tag">17</span><span class="hljs-selector-pseudo">:55</span> <span class="hljs-selector-tag">test</span></code></pre> <p>说明:<br> chmod 777 3.c 命令是指给3.c文件赋予777权限</p> <div style="text-align: right"><a name="_lab2_4_3"></a></div><h2 id="查找home目录下以.log结尾的文件或目录">4. 查找home目录下以.log结尾的文件或目录</h2> <p>命令:</p> <p>查找以.log结尾的文件</p> <pre><code class="hljs lua"><span class="hljs-built_in">find</span> /home/ -<span class="hljs-built_in">type</span> f -name <span class="hljs-string">'*.log'</span></code></pre> <p>查找以.log结尾的目录</p> <pre><code class="hljs lua"> <span class="hljs-built_in">find</span> /home/ -<span class="hljs-built_in">type</span> d -name <span class="hljs-string">'*.log'</span></code></pre> <p>输出:</p> <pre><code class="hljs lua">[root@localhost home]# ls <span class="hljs-number">1.</span><span class="hljs-built_in">log</span> <span class="hljs-number">2.</span><span class="hljs-built_in">log</span> <span class="hljs-number">3.</span>c test [root@localhost home]# mkdir <span class="hljs-number">4.</span><span class="hljs-built_in">log</span> [root@localhost home]# ls <span class="hljs-number">1.</span><span class="hljs-built_in">log</span> <span class="hljs-number">2.</span><span class="hljs-built_in">log</span> <span class="hljs-number">3.</span>c <span class="hljs-number">4.</span><span class="hljs-built_in">log</span> test [root@localhost home]# <span class="hljs-built_in">find</span> /home/ -<span class="hljs-built_in">type</span> f -name <span class="hljs-string">'*.log'</span> /home/<span class="hljs-number">1.</span><span class="hljs-built_in">log</span> /home/<span class="hljs-number">2.</span><span class="hljs-built_in">log</span> [root@localhost home]# <span class="hljs-built_in">find</span> /home/ -<span class="hljs-built_in">type</span> d -name <span class="hljs-string">'*.log'</span> /home/<span class="hljs-number">4.</span><span class="hljs-built_in">log</span> </code></pre> <div style="text-align: right"><a name="_lab2_4_4"></a></div><h2 id="查找当前目录下文件大小大于5个字节的文件">5. 查找当前目录下文件大小大于5个字节的文件</h2> <p>命令:<br> 大于5个字节</p> <pre><code class="hljs lua"><span class="hljs-built_in">find</span> -size +<span class="hljs-number">5</span>c</code></pre> <p>等于6个字节</p> <pre><code class="hljs lua"><span class="hljs-built_in">find</span> -size <span class="hljs-number">6</span>c</code></pre> <pre><code class="hljs less"><span class="hljs-selector-attr">[root@localhost home]</span># <span class="hljs-selector-tag">ll</span> <span class="hljs-selector-tag">total</span> <span class="hljs-selector-tag">0</span> <span class="hljs-selector-tag">-rw-r--r--</span>. <span class="hljs-selector-tag">1</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">0</span> <span class="hljs-selector-tag">Nov</span> <span class="hljs-selector-tag">14</span> <span class="hljs-selector-tag">17</span><span class="hljs-selector-pseudo">:55</span> <span class="hljs-selector-tag">1</span><span class="hljs-selector-class">.log</span> <span class="hljs-selector-tag">-rw-r--r--</span>. <span class="hljs-selector-tag">1</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">0</span> <span class="hljs-selector-tag">Nov</span> <span class="hljs-selector-tag">14</span> <span class="hljs-selector-tag">17</span><span class="hljs-selector-pseudo">:55</span> <span class="hljs-selector-tag">2</span><span class="hljs-selector-class">.log</span> <span class="hljs-selector-tag">-rwxrwxrwx</span>. <span class="hljs-selector-tag">1</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">0</span> <span class="hljs-selector-tag">Nov</span> <span class="hljs-selector-tag">14</span> <span class="hljs-selector-tag">18</span><span class="hljs-selector-pseudo">:00</span> <span class="hljs-selector-tag">3</span><span class="hljs-selector-class">.c</span> <span class="hljs-selector-tag">drwxr-xr-x</span>. <span class="hljs-selector-tag">2</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">6</span> <span class="hljs-selector-tag">Nov</span> <span class="hljs-selector-tag">14</span> <span class="hljs-selector-tag">18</span><span class="hljs-selector-pseudo">:16</span> <span class="hljs-selector-tag">4</span><span class="hljs-selector-class">.log</span> <span class="hljs-selector-tag">drwxr-xr-x</span>. <span class="hljs-selector-tag">2</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">root</span> <span class="hljs-selector-tag">6</span> <span class="hljs-selector-tag">Nov</span> <span class="hljs-selector-tag">14</span> <span class="hljs-selector-tag">17</span><span class="hljs-selector-pseudo">:55</span> <span class="hljs-selector-tag">test</span> <span class="hljs-selector-attr">[root@localhost home]</span># <span class="hljs-selector-tag">find</span> <span class="hljs-selector-tag">-size</span> +<span class="hljs-selector-tag">5c</span> . ./<span class="hljs-selector-tag">test</span> ./<span class="hljs-selector-tag">4</span><span class="hljs-selector-class">.log</span> <span class="hljs-selector-attr">[root@localhost home]</span># <span class="hljs-selector-tag">find</span> <span class="hljs-selector-tag">-size</span> <span class="hljs-selector-tag">6c</span> ./<span class="hljs-selector-tag">test</span> ./<span class="hljs-selector-tag">4</span><span class="hljs-selector-class">.log</span> </code></pre> </div>shell