Linux如何查找大文件或目錄總結


Linux如何查找大文件或目錄總結

 

 

原帖地址:http://www.cnblogs.com/kerrycode/p/4391859.html  謝謝瀟湘隱者,謝謝老大

 

 

在Linux系統中,如何去搜索一些比較大的文件呢?下面我整理了一下在Linux系統中如何查找大文件或文件夾的方法。

 

1 如何查找大文件

其實很多時候,你需要了解 /u01/app/oracle/oradata/prod/ 下有哪些大的數據文件,比如文件大小超過100M或1G(閥值視具體情況而定)。那么如何把這些大文件搜索出來呢?

1.1搜索指定目錄下超過指定大小的文件

例如我要搜索 /u01/app/oracle/oradata/prod/ 下,超過500M大小的文件

[oracle@Oracle11g ~]$ find /u01/app/oracle/oradata/prod/  -type f -size +500M

/u01/app/oracle/oradata/prod/sysaux01.dbf

/u01/app/oracle/oradata/prod/system01.dbf

 

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

1.2搜索指定目錄下超過指定大小的文件(顯示文件用戶、屬組)

[oracle@Oracle11g ~]$ find /u01/app/oracle/oradata/prod/  -type f -size +500M  -print0 | xargs -0 ls –l

 

-rw-r----- 1 oracle oinstall 545267712 11-19 23:20 /u01/app/oracle/oradata/prod/sysaux01.dbf

-rw-r----- 1 oracle oinstall 744497152 11-19 23:20 /u01/app/oracle/oradata/prod/system01.dbf

 

1.3搜索指定目錄下超過指定大小的文件(顯示文件詳細size)

 

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

[oracle@Oracle11g ~]$ find /u01/app/oracle/oradata/prod/ -type f -size +500M  -print0 | xargs -0 du –h

 

521M    /u01/app/oracle/oradata/prod/sysaux01.dbf

711M    /u01/app/oracle/oradata/prod/system01.dbf

 

1.4搜索指定目錄下超過指定大小的文件(按大小排序,結果有出入)

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

[oracle@Oracle11g ~]$ find /u01/app/oracle/oradata/prod/  -type f -size +500M  -print0 | xargs -0 du -h | sort -nr

711M    /u01/app/oracle/oradata/prod/system01.dbf

521M    /u01/app/oracle/oradata/prod/sysaux01.dbf

 

1.5搜索指定目錄下超過指定大小的文件(按大小排序,嚴格的)

不過如上截圖所示,有時候排列的順序並不完全是按大小一致,這個是因為du命令的參數h所致,你可以統一使用使用MB來顯示,這樣就能解決這個問題

[oracle@Oracle11g ~]$ find /u01/app/oracle/oradata/prod/ -type f -size +500M -print0 | xargs -0 du -hm | sort –n

 

521     /u01/app/oracle/oradata/prod/sysaux01.dbf

711     /u01/app/oracle/oradata/prod/system01.dbf

1.6 搜索指定目錄下超過指定大小的文件(詳細顯示文件的屬主、屬組、文件大小(M為單位))

[oracle@Oracle11g ~]$ find /u01/app/oracle/oradata/prod/  -type f -size +500M  -print0 | xargs -0 ls -lh  | sort -nr

rw-r----- 1 oracle oinstall 711M 11-20 09:06 /u01/app/oracle/oradata/prod/system01.dbf
-rw-r----- 1 oracle oinstall 521M 11-20 09:06 /u01/app/oracle/oradata/prod/sysaux01.dbf

 

 

 

2 如何查找Linux下的大目錄

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

 

2.1查找指定目錄下的大目錄

[oracle@Oracle11g ~]$ du -h /u01  --max-depth=1

5.7G    /u01/app

16K     /u01/lost+found

5.7G    /u01

[oracle@Oracle11g ~]$ du -h /u01  --max-depth=2

2.6M    /u01/app/oraInventory

5.7G    /u01/app/oracle

5.7G    /u01/app

16K     /u01/lost+found

5.7G    /u01

[oracle@Oracle11g ~]$ du -h /u01  --max-depth=3

16K     /u01/app/oraInventory/ContentsXML

8.0K    /u01/app/oraInventory/oui

2.6M    /u01/app/oraInventory/logs

2.6M    /u01/app/oraInventory

1.7G    /u01/app/oracle/oradata

4.0K    /u01/app/oracle/checkpoints

4.0G    /u01/app/oracle/product

716K    /u01/app/oracle/admin

232K    /u01/app/oracle/cfgtoollogs

6.8M    /u01/app/oracle/diag

5.7G    /u01/app/oracle

5.7G    /u01/app

16K     /u01/lost+found

5.7G    /u01

 

如果你想知道/u01目錄下面有哪些大文件夾,那么可以將參數max-depth=2 ,如果你想對搜索出來的結果進行排序,那么可以借助於sort命令。如下所示

[oracle@Oracle11g ~]$ du -h /u01  --max-depth=2 |sort -n

2.6M    /u01/app/oraInventory

5.7G    /u01

5.7G    /u01/app

5.7G    /u01/app/oracle

16K     /u01/lost+found

[oracle@Oracle11g ~]$ du -h /u01  --max-depth=3 |sort -n

1.7G    /u01/app/oracle/oradata

2.6M    /u01/app/oraInventory

2.6M    /u01/app/oraInventory/logs

4.0G    /u01/app/oracle/product

4.0K    /u01/app/oracle/checkpoints

5.7G    /u01

5.7G    /u01/app

5.7G    /u01/app/oracle

6.8M    /u01/app/oracle/diag

8.0K    /u01/app/oraInventory/oui

16K     /u01/app/oraInventory/ContentsXML

16K     /u01/lost+found

232K    /u01/app/oracle/cfgtoollogs

716K    /u01/app/oracle/admin

 

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

[oracle@Oracle11g ~]$ du -hm /u01/app/oracle/ --max-depth=2 | sort -nr | head -5

5741    /u01/app/oracle/

4057    /u01/app/oracle/product/11.2.0

4057    /u01/app/oracle/product

1677    /u01/app/oracle/oradata/prod

1677    /u01/app/oracle/oradata

3.自己整理的(實用的)

3.1 查找系統中的大目錄(從大到小排序,取前5個)

[root@Oracle11g ~]# du -hm / --max-depth=1 | sort -nr | head -5


9456    /
5744    /u01
2964    /usr
260     /dev
234     /lib

3.2 查找上面目錄(/u01)中的大文件

[root@Oracle11g ~]#  find /u01/app/oracle/  -type f -size +500M  -print0 | xargs -0 ls -lh  | sort -nr

 

-rw-r----- 1 oracle oinstall 711M 11-20 09:41 /u01/app/oracle/oradata/prod/system01.dbf
-rw-r----- 1 oracle oinstall 521M 11-20 09:36 /u01/app/oracle/oradata/prod/sysaux01.dbf 

 

哈哈,挺實用的

 


免責聲明!

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



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