天天看點

Linux如何查找大檔案或目錄總結

1: 如何查找大檔案?

搜尋目前目錄下,超過100M大小的檔案:

<code>[root@getlnx01 u03]# find . -type f -size +100M</code>

<code>./usr/local/jdk-7u67-linux-x64.tar.gz</code>

<code>./data/log/charge-service/test-access.log.</code><code>2016</code><code>-</code><code>08</code><code>-</code><code>08</code><code>.log</code>

<code>./data/log/aaa_service/test-access.log.</code><code>2016</code><code>-</code><code>08</code><code>-</code><code>09</code><code>.log</code>

<code>./home/deploy/logs/testmqlogs/otherdays/testmq_client.</code><code>1</code><code>.log</code>

<code>./home/deploy/logs/testmqlogs/otherdays/testmq_client.</code><code>2</code><code>.log</code>

<code>./opt/backend/charge-service/</code><code>1.2</code><code>/shared/console.log</code>

<code>./opt/backend/express_service/</code><code>0.0</code><code>.</code><code>3</code><code>.tar.gz</code>

<code>./opt/backend/aaa-service/</code><code>1.2</code><code>/shared/console.log</code>

更詳細顯示一些檔案屬性或資訊:

<code>[root@getlnx01 u03]# find . -type f -size +100M  -print0 | xargs -</code><code>0</code> <code>ls -l</code>

<code>-rw-rw-r-- </code><code>1</code> <code>deploy deploy </code><code>542795006</code> <code>8</code><code>月  </code><code>30</code> <code>15</code><code>:</code><code>14</code> <code>./data/log/charge-service/test-access.log.</code><code>2016</code><code>-</code><code>08</code><code>-</code><code>08</code><code>.log</code>

<code>-rw-rw-r-- </code><code>1</code> <code>deploy deploy </code><code>225658142</code> <code>8</code><code>月  </code><code>25</code> <code>16</code><code>:</code><code>28</code> <code>./data/log/aaa_service/test-access.log.</code><code>2016</code><code>-</code><code>08</code><code>-</code><code>09</code><code>.log</code>

<code>-rw-rw-r-- </code><code>1</code> <code>deploy deploy </code><code>253623621</code> <code>8</code><code>月  </code><code>30</code> <code>15</code><code>:</code><code>15</code> <code>./home/deploy/logs/testmqlogs/otherdays/testmq_client.</code><code>1</code><code>.log</code>

<code>-rw-rw-r-- </code><code>1</code> <code>deploy deploy </code><code>373547598</code> <code>8</code><code>月  </code><code>25</code> <code>16</code><code>:</code><code>28</code> <code>./home/deploy/logs/testmqlogs/otherdays/testmq_client.</code><code>2</code><code>.log</code>

<code>-rw-rw-r-- </code><code>1</code> <code>deploy deploy </code><code>645631934</code> <code>8</code><code>月  </code><code>30</code> <code>15</code><code>:</code><code>15</code> <code>./opt/backend/charge-service/</code><code>1.2</code><code>/shared/console.log</code>

<code>-rw-rw-r-- </code><code>1</code> <code>deploy deploy </code><code>209314900</code> <code>8</code><code>月  </code><code>30</code> <code>15</code><code>:</code><code>15</code> <code>./opt/backend/aaa-service/</code><code>1.2</code><code>/shared/console.log</code>

<code>-rw-r--r-- </code><code>1</code> <code>root   root   </code><code>315334884</code> <code>12</code><code>月 </code><code>21</code> <code>2015</code> <code>./opt/backend/express_service/</code><code>0.0</code><code>.</code><code>3</code><code>.tar.gz</code>

<code>-rw-r--r-- </code><code>1</code> <code>root   root   </code><code>142376665</code> <code>6</code><code>月  </code><code>11</code> <code>2015</code> <code>./usr/local/jdk-7u67-linux-x64.tar.gz</code>

<code>-rw-rw-r-- </code><code>1</code> <code>deploy deploy </code><code>105085974</code> <code>8</code><code>月  </code><code>30</code> <code>15</code><code>:</code><code>15</code> <code>./usr/local/push-tomcat/logs/push/info.log6829699375703641.tmp</code>

當我們隻需要查找超過100M大小檔案,并顯示查找出來檔案的具體大小,并排序(下)

<code>[root@getlnx01 u03]# find . -type f -size +100M  -print0 | xargs -</code><code>0</code> <code>du -h</code>

<code>102M     ./usr/local/push-tomcat/logs/push/info.log6829699375703641.tmp</code>

<code>136M     ./usr/local/jdk-7u67-linux-x64.tar.gz</code>

<code>518M     ./data/log/charge-service/test-access.log.</code><code>2016</code><code>-</code><code>08</code><code>-</code><code>08</code><code>.log</code>

<code>216M     ./data/log/aaa_service/test-access.log.</code><code>2016</code><code>-</code><code>08</code><code>-</code><code>09</code><code>.log</code>

<code>242M     ./home/deploy/logs/testmqlogs/otherdays/testmq_client.</code><code>1</code><code>.log</code>

<code>357M     ./home/deploy/logs/testmqlogs/otherdays/testmq_client.</code><code>2</code><code>.log</code>

<code>616M     ./opt/backend/charge-service/</code><code>1.2</code><code>/shared/console.log</code>

<code>301M     ./opt/backend/express_service/</code><code>0.0</code><code>.</code><code>3</code><code>.tar.gz</code>

<code>201M     ./opt/backend/aaa-service/</code><code>1.2</code><code>/shared/console.log</code>

<code>[root@getlnx01 u03]# find . -type f -size +100M  -print0 | xargs -</code><code>0</code> <code>du -h | sort -nr</code>

<code>243M     ./home/deploy/logs/testmqlogs/otherdays/testmq_client.</code><code>1</code><code>.log</code>

不過如上截圖所示,有時候排列的順序并不完全是按大小一緻,這個是因為du指令的參數h所緻,你可以統一使用使用MB來顯示,這樣就能解決這個問題。到這裡,這個在Linux系統查找大檔案的指令已經非常完美了,當然如果你還有很多的需求,那麼可以在這個指令上做修改、調整.

2: 如何查找Linux下的大目錄

譬如有時候磁盤空間告警了,而你平時又疏于管理、監控檔案的增長,那麼我需要快速的了解哪些目錄變得比較大,那麼此時我們可以借助du指令來幫我們解決這個問題。

<code>[root@getlnx01 u03]# du -h --max-depth=</code><code>1</code>

<code>16K     ./lost+found</code>

<code>33G     ./flash_recovery_area</code>

<code>37G     ./oradata</code>

<code>70G     .</code>

<code>如果你想知道flash_recovery_area目錄下面有哪些大檔案夾,那麼可以将參數max-depth=</code><code>2</code> <code>,如果你想對搜尋出來的結果進行排序,那麼可以借助于sort指令。如下所示</code>

<code>[root@getlnx01 u03]# du -h --max-depth=</code><code>2</code> <code>| sort -n</code>

<code>3</code><code>.5G    ./flash_recovery_area/EPPS</code>

<code>29G     ./flash_recovery_area/backup</code>

<code>37G     ./oradata/epps</code>

<code>[root@getlnx01 u03]# du -hm --max-depth=</code><code>2</code> <code>| sort -n</code>

<code>1</code>       <code>./lost+found</code>

<code>3527</code>    <code>./flash_recovery_area/EPPS</code>

<code>29544</code>   <code>./flash_recovery_area/backup</code>

<code>33070</code>   <code>./flash_recovery_area</code>

<code>37705</code>   <code>./oradata</code>

<code>37705</code>   <code>./oradata/epps</code>

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

<code>[root@getlnx01 /]# du -hm --max-depth=</code><code>2</code> <code>| sort -nr | head -</code><code>12</code>

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

<code>167880</code>  <code>./u04</code>

<code>158685</code>  <code>./u02/oradata</code>

<code>158685</code>  <code>./u02</code>

<code>152118</code>  <code>./u04/oradata</code>

<code>70775</code>   <code>./u03</code>

<code>37705</code>   <code>./u03/oradata</code>

<code>33070</code>   <code>./u03/flash_recovery_area</code>

<code>5995</code>    <code>./u01/app</code>

<code>5995</code>    <code>./u01</code>

<code>3551</code>    <code>./usr</code>

<code>1558</code>    <code>./usr/share</code>

參考資料:

<a href="http://linuxandfriends.com/how-to-find-large-files-in-linux-using-command-line/" target="_blank">http://linuxandfriends.com/how-to-find-large-files-in-linux-using-command-line/</a>

<a href="http://www.docin.com/p-563963500.html" target="_blank">http://www.docin.com/p-563963500.html</a>

本文轉自奔跑在路上部落格51CTO部落格,原文連結http://blog.51cto.com/qiangsh/1844338如需轉載請自行聯系原作者

qianghong000

繼續閱讀