在 Linux 中按大小對檔案進行排序

Niraj Menon 2023年1月30日
  1. 在 Linux 上的目錄中查詢最大和最小檔案
  2. 在 Linux 中查詢所有目錄的大小
  3. 在 Linux 中查詢大於特定大小的檔案
  4. 在 Linux 中檢視磁碟使用情況
在 Linux 中按大小對檔案進行排序

有時,你希望通過查詢不必要的大檔案並刪除它們或刪除小於預定大小的檔案(例如日誌)來進行一些系統深度清理。Linux 提供了各種實用程式,可以幫助我們在結合使用時找到此類檔案。

本教程將介紹如何在日常使用中使用 find,例如根據檔案大小在資料夾中查詢檔案。

在 Linux 上的目錄中查詢最大和最小檔案

要查詢給定資料夾中最大的檔案,我們可以使用 dusort 命令。

user@linux:~$ ls -lh
-rw-r--r-- 1 user user 8.0M Jan 1 00:00 a
-rw-r--r-- 1 user user 4.0M Jan 1 00:00 b
-rw-r--r-- 1 user user 2.0M Jan 1 00:00 c
-rw-r--r-- 1 user user 1.0M Jan 1 00:00 d
user@linux:~$ du -h * | sort -h
1.0M    d
2.0M    c
4.0M    b
8.0M    a

這將按照大小增加的順序列印出檔案,因此目錄中最大的檔案將在程式輸出的末尾,而最小的檔案將在開頭。

注意 -h 標誌的使用 - 這告訴命令大小以人類可讀的形式給出。

在 Linux 中查詢所有目錄的大小

以下命令在你的主目錄中查詢並按大小升序對目錄進行排序。

user@linux:~$ sudo find /var/ -maxdepth 1 -type d -exec du -sh {} \; | sort -h
4.0K    /var/local
4.0K    /var/mail
4.0K    /var/opt
56K     /var/spool
60K     /var/tmp
92K     /var/snap
7.3M    /var/backups
4.3G    /var/log
4.4G    /var/cache
17G     /var/lib
25G     /var/

在 Linux 中查詢大於特定大小的檔案

如果你知道要搜尋的檔案的最小或最大大小,則可以使用 find 命令列出此類檔案。

假設你想查詢所有大於 200 MB (200M) 的檔案。我們可以使用以下命令執行此操作,該命令還會列印出每個發現檔案的大小。我們使用 sudo 進入所有根擁有的目錄。

請記住,執行的輸出可能會產生不同的檔案。

user@linux:/var$ sudo find . -type f -size +200M -exec ls -lh {} \;
-rw------- 2 root root 363M Jan 1 00:00 ./lib/snapd/snaps/qt513_24.snap
-rw------- 2 root root 363M Jan 1 00:00 ./lib/snapd/cache/cf177ca655544816bb73b6d8e89c83753b96548f105acd563c1bf1b7d0d046bd3e99a96db5bfe912f8a446a8e9d5b6c5

在 Linux 中檢視磁碟使用情況

Linux 命令 df 允許我們檢視檔案系統每個分割槽的整體磁碟使用情況,這有助於縮小空間過度使用的分割槽。我們執行以下命令來查詢磁碟使用情況。

再一次,這可能會因你的磁碟配置而完全不同。帶有 snap 的條目稱為環回磁碟,它們是安裝磁碟映像的虛擬磁碟,這是 Ubuntu 上 Snap 實用程式所要求的。

user@linux:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            7.8G     0  7.8G   0% /dev
tmpfs           1.6G  2.1M  1.6G   1% /run
/dev/nvme0n1p6  200G   45G  146G  24% /
tmpfs           7.8G  397M  7.4G   5% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
/dev/nvme0n1p2   96M   36M   61M  37% /boot/efi
/dev/loop1       56M   56M     0 100% /snap/core18/2253
/dev/loop0      165M  165M     0 100% /snap/gnome-3-28-1804/161
/dev/loop2      512K  512K     0 100% /snap/gifex/3
/dev/loop3       66M   66M     0 100% /snap/gtk-common-themes/1519
/dev/loop4      128K  128K     0 100% /snap/bare/5
/dev/loop6      363M  363M     0 100% /snap/qt513/24
/dev/loop7      100M  100M     0 100% /snap/core/11993
/dev/sda7       1.1T  384G  677G  37% /home
tmpfs           1.6G  1.9M  1.6G   1% /run/user/1000
/dev/loop8       56M   56M     0 100% /snap/core18/2284

相關文章 - Linux File