Linux查找大文件 (find的用法)


Linux查找大文件

1: 如何查找大文件?

其實很多時候,你需要了解當前系統下有哪些大文件,比如文件大小超過100M或1G(閥值視具體情況而定)。那么如何把這些大文件搜索出來呢?例如我要搜索當前目錄下,超過800M大小的文件

[root@getlnx01 u03]# find . -type f -size +800M 

如上命令所示,我們僅僅能看到超過800M大小的文件的文件名稱,但是對文件的信息(例如,文件大小、文件屬性)一無所知,那么能否更詳細顯示一些文件屬性或信息呢,當然可以,如下所示

[root@getlnx01 u03]# find . -type f -size +800M  -print0 | xargs -0 ls -l 

當我們只需要查找超過800M大小文件,並顯示查找出來文件的具體大小,可以使用下面命令

[root@getlnx01 u03]# find . -type f -size +800M  -print0 | xargs -0 du -h 

如果你還需要對查找結果按照文件大小做一個排序,那么可以使用下面命令

[root@getlnx01 u03]# find . -type f -size +800M  -print0 | xargs -0 du -h | sort -nr 

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

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

[root@getlnx01 u03]# du -h --max-depth=1 
16K     ./lost+found
33G     ./flash_recovery_area
37G     ./oradata
70G     .
如果你想知道flash_recovery_area目錄下面有哪些大文件夾,那么可以將參數max-depth=2 ,如果你想對搜索出來的結果進行排序,那么可以借助於sort命令。如下所示
[root@getlnx01 u03]# du -h --max-depth=2 | sort -n 
3.5G    ./flash_recovery_area/EPPS
16K     ./lost+found
29G     ./flash_recovery_area/backup
33G     ./flash_recovery_area
37G     ./oradata
37G     ./oradata/epps
70G     .
[root@getlnx01 u03]# du -hm --max-depth=2 | sort -n 
1       ./lost+found
3527    ./flash_recovery_area/EPPS
29544   ./flash_recovery_area/backup
33070   ./flash_recovery_area
37705   ./oradata
37705   ./oradata/epps
70775   .
[root@getlnx01 u03]# cd / 
[root@getlnx01 /]# du -hm --max-depth=2 | sort -n 

有時候搜索出來的結果太多了(譬如,我從根目錄開始搜索),一直在刷屏,如果我只想查出最大的12個文件夾,怎么辦呢?此時就要借助head命令來顯示了

[root@getlnx01 /]# du -hm --max-depth=2 | sort -nr | head -12 
407480  .
167880  ./u04
158685  ./u02/oradata
158685  ./u02
152118  ./u04/oradata
70775   ./u03
37705   ./u03/oradata
33070   ./u03/flash_recovery_area
5995    ./u01/app
5995    ./u01
3551    ./usr
1558    ./usr/share
[root@getlnx01 /]#


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM