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...