使掛載不列出「虛擬」檔案系統(如 df)

使掛載不列出「虛擬」檔案系統(如 df)

當用於mount簡單地列出所有已安裝的檔案系統時,是否有某種方法可以使其不列出「虛擬」檔案系統?讓它只列出有此df功能的檔案系統。

編輯df:「虛擬」是指當您使用該選項時包含的檔案系統--all,因為這就是df手冊頁對它們的稱呼。

答案1

首先,「啞巴」可能不是最好的術語——或者procfs遠非毫無用處。使用(type) 選項並為其提供一個以逗號分隔的您感興趣的檔案系統清單:sysfsdev(tmp)fs-tmount

mount -t tmpfs,xfs

或用於grep過濾您想要的內容(可能grep -v顯示不符的內容):

mount | grep -Ev "(cgroup|proc|sysfs)"

答案2

另一個選擇是使用lsblk -f

lsblk 列出所有可用或指定區塊裝置的資訊。

這意味著,網路共用(nfs、sshfs)或虛擬檔案系統(dev、run、sys、proc 等)是 不是顯示。此外,tmpfs通常顯示的檔案系統df -h不是出現。

-f選項輸出有關檔案系統的信息,其中包括掛載點

例如,在我的機器上,它列出了:

NAME    FSTYPE          LABEL       UUID                                 MOUNTPOINT
sda                                                                      
|-sda1  ext2            bootpar     ab2e48a8-5f1c-484e-a4a1-f8545e4b2019 /boot
|-sda2  swap            swappar     6e9f6e70-141a-417c-82a5-113a3d4c5a53 [SWAP]
`-sda3  ext4            homepar     52f7164d-fac7-4abe-bf78-71353fac7850 /home
sdb     isw_raid_member                                                  
`-md126 ext4            rootparraid 4275f5ba-8244-4039-9100-06afee678557 /
sdc     isw_raid_member                                                  
`-md126 ext4            rootparraid 4275f5ba-8244-4039-9100-06afee678557 /
sr0                                                                      

答案3

dfGNU coreutils 有一個被忽略的檔案系統類型的列表,但它不包含很多條目。在大多數情況下,它消除了大小為 0 的檔案系統。

mount無法直接存取檔案系統大小。要獲得相同的過濾,您需要將 的輸出mountdf或其他一些工具的輸出進行比較,以獲得檔案系統大小。

df這是一種從和獲取排序輸出mount,並對它進行排序和連接的方法。

join -o 2.1,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9 <(df -P | tail -n +2 | sort) <(mount | sort)

這是另一種使用 Python 單行程式碼的方法。 (Perl 在此類單行方面要好得多,但其標準庫中沒有statvfs。)

mount | python -c 'import os, sys; [sys.stdout.write(line) for (dev, line) in [(line.split(" ")[2], line) for line in sys.stdin.readlines()] if os.statvfs(dev).f_blocks]'

相關內容