linux每日命令(20):find命令概覽

<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

相關文章
相關標籤/搜索