天天看點

檔案搜尋

  在linux中,當我們需要搜尋需要的檔案時,可以使用which指令,也可以使用whereis,還可以使用locate工具,但更常用的是find指令。find指令是一個用來搜尋符合特定條件的檔案的指令工具。下面将介紹幾種find指令的用法。

1、按名稱篩選

<code>[root@server02 ~]</code><code># find / -name "test1*"</code>

<code>/root/test1</code>

<code>/root/test12</code>

<code>/tmp/test1</code><code>.txt</code>

<code>/tmp/test12</code><code>.txt</code>

<code>/tmp/test123</code><code>.txt</code>

2、按類型篩選

<code>[root@server02 ~]</code><code># find / -type d -name "test1*"  //d表示目錄</code>

3、按大小篩選

<code>[root@server02 ~]</code><code># ls -lh /tmp | grep "test1"</code>

<code>-rw-r--r--. 1 root root 1.2K 5月  30 09:09 test123.txt</code>

<code>-rw-r--r--. 1 root root 7.8K 5月  30 09:08 test12.txt</code>

<code>-rw-r--r--. 1 root root 3.6M 5月  30 09:12 test1.txt</code>

<code>[root@server02 ~]</code><code># find /tmp -size -5k -name "test1*"   //小于5K</code>

<code>[root@server02 ~]</code><code># find /tmp -size +1M -name "test1*"   //大于1M</code>

4、按時間篩選

通過stat指令能檢視檔案的atime(access time)、mtime(modify time)、ctime(change time)等檔案資訊。

<code>[root@server02 ~]</code><code># stat /tmp/test1.txt</code>

<code>  </code><code>File: </code><code>'/tmp/test1.txt'</code>

<code>  </code><code>Size: 3689322       Blocks: 7208       IO Block: 4096   regular </code><code>file</code>

<code>Device: 803h</code><code>/2051d</code> <code>Inode: 16958226    Links: 1</code>

<code>Access: (0644</code><code>/-rw-r--r--</code><code>)  Uid: (    0/    root)   Gid: (    0/    root)</code>

<code>Context: unconfined_u:object_r:user_tmp_t:s0</code>

<code>Access: 2017-05-30 09:11:39.189757015 +0800</code>

<code>Modify: 2017-05-30 09:12:07.369705343 +0800</code>

<code>Change: 2017-05-30 09:12:07.369705343 +0800</code>

<code> </code><code>Birth: -</code>

通過atime、mtime、ctime篩選的最小機關為“天”。而通過mmin、cmin、amin篩選的最小機關為“分鐘”。

<code>[root@server02 ~]</code><code># find /tmp -atime -1 -name "test"  //atime在1天以内的</code>

<code>/tmp/test</code>

<code>/tmp/test/test</code>

<code>[root@server02 ~]</code><code># find /tmp -atime +1 -name "test"  //atime在1天之前的</code>

<code>[root@server02 ~]</code><code># </code>

<code>[root@server02 ~]</code><code># touch /tmp/test</code>

<code>[root@server02 ~]</code><code># find /tmp -amin +10 -name "test"  //atime在10分鐘前的</code>

5、按inode篩選

<code>[root@server02 tmp]</code><code># ll -i</code>

<code>total 4136</code>

<code>16777289 -rw-r--r--. 2 root root       0 May 30 08:50 1-hd.txt</code>

<code>16777289 -rw-r--r--. 2 root root       0 May 30 08:50 1.txt</code>

<code>33595402 drwxr-xr-x. 3 root root      18 May 30 09:24 </code><code>test</code>

<code>16958225 lrwxrwxrwx. 1 root root       4 May 30 08:43 </code><code>test</code><code>-</code><code>ln</code> <code>-&gt; </code><code>test</code>

<code>16958226 -rw-r--r--. 1 root root 3689322 May 30 09:12 test1.txt</code>

<code>16958227 -rw-r--r--. 1 root root    7917 May 30 09:08 test12.txt</code>

<code>16958228 -rw-r--r--. 1 root root    1131 May 30 09:09 test123.txt</code>

<code>16958239 -rw-r--r--. 2 root root  263523 May 30 09:11 txt</code>

<code>16958239 -rw-r--r--. 2 root root  263523 May 30 09:11 txt_hd</code>

<code>[root@server02 tmp]</code><code># find /tmp -inum 16777289</code>

<code>/tmp/1</code><code>.txt</code>

<code>/tmp/1-hd</code><code>.txt</code>

<code>[root@server02 tmp]</code><code># find /tmp -inum 16958239</code>

<code>/tmp/txt</code>

<code>/tmp/txt_hd</code>

    以上5種篩選方式同時使用時是同時滿足的關系。表示篩選出來的檔案要符合多個條件。如果多個條件中隻需要符合其中任意一個,可以使用“-o”參數。

<code>[root@server02 tmp]</code><code># find /tmp -amin +15 -name "test"</code>

<code>[root@server02 tmp]</code><code># find /tmp -amin +15 -o -name "test"</code>

<code>/tmp/</code><code>.font-unix</code>

<code>/tmp/</code><code>.X11-unix</code>

<code>/tmp/</code><code>.ICE-unix</code>

<code>/tmp/</code><code>.Test-unix</code>

<code>/tmp/</code><code>.XIM-unix</code>

<code>......</code>

本文轉自Grodd51CTO部落格,原文連結:http://blog.51cto.com/juispan/1933980,如需轉載請自行聯系原作者

繼續閱讀