Find

查找根文件系統中的所有大文件

  • October 4, 2021

我有一個 linux 伺服器,目前有以下空間使用:

/dev/sda3              20G   15G  4.2G  78% /
/dev/sda6              68G   42G   23G  65% /u01
/dev/sda2              30G  7.4G   21G  27% /opt
/dev/sda1              99M   19M   76M  20% /boot
tmpfs                  48G  8.2G   39G  18% /dev/shm

如你看到的。/為 78%。我想檢查一下哪些文件或文件夾佔用了空間。

我試過這個:

find . -type d -size +100M

顯示如下結果:

./u01/app/june01.dbf
./u01/app/temp01.dbf
./u01/app/smprd501.dbf
./home/abhishek/centos.iso
./home/abhishek/filegroup128.jar

現在這是我的問題。我只想要位於消耗空間的文件夾中的那​​些文件的名稱,/而不是/u01/home。由於/它是一切的基礎,它向我展示了我的伺服器的每個文件。

是否有可能獲得佔 78% 的大文件/

嘗試:

find / -xdev -type f -size +100M

它列出了所有大小大於 100M 的文件。

如果您想了解目錄,可以嘗試ncdu.

如果您沒有執行 Linux,則可能需要使用-size +204800or -size +104857600c,因為M在 POSIX 中沒有表示兆字節的後綴。

find / -xdev -type f -size +102400000c

以下命令不僅可以找到文件系統上前 50 個最大的文件 (>100M),還可以sort按最大的文件排序 (GNU):

find / -xdev -type f -size +100M -exec du -sh {} ';' | sort -rh | head -n50

-xdev不要下降其他文件系統上的目錄。

在 BSD 上find使用-x相當於棄用的-xdev主要版本。

對於所有文件和目錄,它更容易:

du -ahx / | sort -rh | head -20

(該-x標誌是限制du單個文件系統所需的)

如果您不使用 GNU sort(來自coreutils),請在不使用 GNU 的情況下使用它-h

du -ax / | sort -rn | head -20

僅對於目前目錄(為了更快的結果),替換/..

引用自:https://unix.stackexchange.com/questions/140367