Linux系統中如何查詢大檔案或目錄資料夾的方法

2022-07-08 12:27:06 字數 4915 閱讀 6209

linux系統中如何查詢大檔案或資料夾的方法

在windows系統中,我們可以使用treesize工具查詢一些大檔案或資料夾,非常的方便高效,在linux系統中,如何去搜尋一些比較大的檔案呢?下面我整理了一下在linux系統中如何查詢大檔案或資料夾的方法。

1: 如何查詢大檔案?

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

[root@vmhost ~]# cd /

[root@vmhost /]# find . -type f -size +100m

./sys/devices/pci0000:00/0000:00:0f.0/resource1

./sys/devices/pci0000:00/0000:00:0f.0/resource1_wc

find: 「./proc/2152/task/2152/fd/5」: 沒有那個檔案或目錄

find: 「./proc/2152/task/2152/fdinfo/5」: 沒有那個檔案或目錄

find: 「./proc/2152/fd/5」: 沒有那個檔案或目錄

find: 「./proc/2152/fdinfo/5」: 沒有那個檔案或目錄

./root/softpkg/jdk-8u40-linux-i586.rpm

./root/softpkg/jdk-8u211-linux-x64.rpm

[root@vmhost /]#

如上命令所示,我們僅僅能看到超過100m大小的檔案的檔名稱,但是對檔案的資訊(例如,檔案大小、檔案屬性)一無所知,那麼能否更詳細顯示一些檔案屬性或資訊呢,當然可以,如下所示

[root@vmhost /]# find . -type f -size +100m -print0 |xargs -0 ls -lh

find: 「./proc/2174/task/2174/fd/5」: 沒有那個檔案或目錄

find: 「./proc/2174/task/2174/fdinfo/5」: 沒有那個檔案或目錄

find: 「./proc/2174/fd/5」: 沒有那個檔案或目錄

find: 「./proc/2174/fdinfo/5」: 沒有那個檔案或目錄

-rw-r--r-- 1 root root 172m 7月 4 23:00 ./root/softpkg/jdk-8u211-linux-x64.rpm

-rw-r--r--. 1 root root 147m 4月 16 2015 ./root/softpkg/jdk-8u40-linux-i586.rpm

-rw------- 1 root root 128m 7月 6 00:07 ./sys/devices/pci0000:00/0000:00:0f.0/resource1

-rw------- 1 root root 128m 7月 6 00:07 ./sys/devices/pci0000:00/0000:00:0f.0/resource1_wc

[root@vmhost /]#

當我們只需要查詢超過100m大小檔案,並顯示查詢出來檔案的具體大小,可以使用下面命令

[root@vmhost /]# find . -type f -size +100m -print0 |xargs -0 du -h

find: 「./proc/2183/task/2183/fd/5」: 沒有那個檔案或目錄

find: 「./proc/2183/task/2183/fdinfo/5」: 沒有那個檔案或目錄

find: 「./proc/2183/fd/5」: 沒有那個檔案或目錄

find: 「./proc/2183/fdinfo/5」: 沒有那個檔案或目錄

0 ./sys/devices/pci0000:00/0000:00:0f.0/resource1

0 ./sys/devices/pci0000:00/0000:00:0f.0/resource1_wc

147m ./root/softpkg/jdk-8u40-linux-i586.rpm

172m ./root/softpkg/jdk-8u211-linux-x64.rpm

如果你還需要對查詢結果按照檔案大小做乙個排序,那麼可以使用下面命令

[root@vmhost /]# find . -type f -size +100m -print0 |xargs -0 du -h|sort -nr

find: 「./proc/2199/task/2199/fd/5」: 沒有那個檔案或目錄

find: 「./proc/2199/task/2199/fdinfo/5」: 沒有那個檔案或目錄

find: 「./proc/2199/fd/5」: 沒有那個檔案或目錄

find: 「./proc/2199/fdinfo/5」: 沒有那個檔案或目錄

172m ./root/softpkg/jdk-8u211-linux-x64.rpm

147m ./root/softpkg/jdk-8u40-linux-i586.rpm

0 ./sys/devices/pci0000:00/0000:00:0f.0/resource1_wc

0 ./sys/devices/pci0000:00/0000:00:0f.0/resource1

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

2: 如何查詢linux下的大目錄大資料夾

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

[[root@vmhost /]# du -h --max-depth=1

0 ./sys

4.0k ./selinux

2.6g ./usr

0 ./net

du: 無法訪問"./proc/2225/task/2225/fd/4": 沒有那個檔案或目錄

du: 無法訪問"./proc/2225/task/2225/fdinfo/4": 沒有那個檔案或目錄

du: 無法訪問"./proc/2225/fd/4": 沒有那個檔案或目錄

du: 無法訪問"./proc/2225/fdinfo/4": 沒有那個檔案或目錄

0 ./proc

52k ./home

4.0k ./cgroup

176k ./dev

16k ./lost+found

28k ./tmp

7.8m ./bin

154m ./lib

4.0k ./mnt

4.0k ./srv

85m ./var

29m ./etc

327m ./root

0 ./misc

15m ./sbin

8.0k ./opt

24m ./boot

20k ./record

4.0k ./media

31m ./lib64

3.2g .

如果你想知道某個目錄對於目錄下面有哪些大資料夾,那麼可以將引數max-depth=2 ,如果你想對搜尋出來的結果進行排序,那麼可以借助於sort命令。如下所示

[root@vmhost /]# du -hm --max-depth=2 |sort -n

du: 無法訪問"./proc/2260/task/2260/fd/4": 沒有那個檔案或目錄

du: 無法訪問"./proc/2260/task/2260/fdinfo/4": 沒有那個檔案或目錄

du: 無法訪問"./proc/2260/fd/4": 沒有那個檔案或目錄

du: 無法訪問"./proc/2260/fdinfo/4": 沒有那個檔案或目錄

。。。注意:

[root@vmhost /]# du -hm --max-depth= 2 |sort -nr| head -10

du: 目錄最大深度"" 無效

請嘗試執行"du --help"來獲取更多資訊。

head: 無法開啟"12" 讀取資料: 沒有那個檔案或目錄

--max-depth= 2 不能有空格!!

[root@vmhost /]# du -hm --max-depth=2 |sort -n

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

[root@vmhost /]# du -hm --max-depth=2 |sort -nr| head -10

du: 無法訪問"./proc/2320/task/2320/fd/4": 沒有那個檔案或目錄

du: 無法訪問"./proc/2320/task/2320/fdinfo/4": 沒有那個檔案或目錄

du: 無法訪問"./proc/2320/fd/4": 沒有那個檔案或目錄

du: 無法訪問"./proc/2320/fdinfo/4": 沒有那個檔案或目錄

3261 .

2591 ./usr

1083 ./usr/share

665 ./usr/lib64

399 ./usr/lib

327 ./root/softpkg

327 ./root

185 ./usr/bin

154 ./lib

109 ./usr/include

Linux系統中如何查詢大檔案或資料夾的方法

renguoqiang crm web 2 sudo su root crm web 2 renguoqiang cd root crm web 2 find type f size 100m root crm web 1 df h find type f size 800m print0 xarg...

linux系統查詢大檔案指令碼

每次遇到伺服器磁碟滿,都會很苦惱,但有了下面兩種方法就可以輕鬆找到機器中的大檔案了,釋 s選項指定對於目錄不詳細顯示每個子目錄或檔案的大 h已易讀的格式顯示指定目錄或檔案的大小 a.在 目錄下查詢1k的檔案,有三種方式 find size 2 find size 1024c find size 1k...

linux系統查詢大檔案指令碼

每次遇到伺服器磁碟滿,都會很苦惱,但有了下面兩種方法就可以輕鬆找到機器中的大檔案了,釋 s選項指定對於目錄不詳細顯示每個子目錄或檔案的大 h已易讀的格式顯示指定目錄或檔案的大小 a.在 目錄下查詢1k的檔案,有三種方式 find size 2 find size 1024c find size 1k...