Linux
每個設備的 Linux 可用磁碟空間
在我的系統中,
df -hT
輸出如下內容:> df -hT Sist. Arq. Tipo Tam. Usado Disp. Uso% Montado em devtmpfs devtmpfs 1,9G 8,0K 1,9G 1% /dev tmpfs tmpfs 1,9G 616K 1,9G 1% /dev/shm tmpfs tmpfs 1,9G 1,8M 1,9G 1% /run tmpfs tmpfs 1,9G 0 1,9G 0% /sys/fs/cgroup /dev/sda6 btrfs 80G 22G 58G 27% / /dev/sda6 btrfs 80G 22G 58G 27% /.snapshots /dev/sda6 btrfs 80G 22G 58G 27% /var/lib/pgsql /dev/sda6 btrfs 80G 22G 58G 27% /var/lib/mysql /dev/sda6 btrfs 80G 22G 58G 27% /var/opt /dev/sda6 btrfs 80G 22G 58G 27% /var/lib/libvirt/images /dev/sda6 btrfs 80G 22G 58G 27% /var/lib/mailman /dev/sda6 btrfs 80G 22G 58G 27% /var/lib/machines /dev/sda6 btrfs 80G 22G 58G 27% /var/crash /dev/sda6 btrfs 80G 22G 58G 27% /var/lib/mariadb /dev/sda6 btrfs 80G 22G 58G 27% /var/lib/named /dev/sda6 btrfs 80G 22G 58G 27% /boot/grub2/x86_64-efi /dev/sda6 btrfs 80G 22G 58G 27% /usr/local /dev/sda6 btrfs 80G 22G 58G 27% /boot/grub2/i386-pc /dev/sda6 btrfs 80G 22G 58G 27% /var/spool /dev/sda6 btrfs 80G 22G 58G 27% /opt /dev/sda6 btrfs 80G 22G 58G 27% /var/cache /dev/sda6 btrfs 80G 22G 58G 27% /srv /dev/sda6 btrfs 80G 22G 58G 27% /var/log /dev/sda6 btrfs 80G 22G 58G 27% /var/tmp /dev/sda6 btrfs 80G 22G 58G 27% /tmp /dev/sda8 vfat 340G 313G 27G 93% /mnt/Data /dev/sda7 xfs 200G 143G 58G 72% /home tmpfs tmpfs 385M 44K 385M 1% /run/user/1000 /dev/sda3 fuseblk 287G 190G 98G 67% /run/media/jaques/OS /dev/mmcblk0p1 vfat 7,5G 2,1G 5,4G 28% /run/media/jaques/9843-A435
但我希望每個設備只列出一次,無論它被安裝多少次。
我想要一些更簡單的東西,比如:
> df -hT Sist. Arq. Tipo Tam. Usado Disp. Uso% /dev/sda6 btrfs 80G 22G 58G 27% /dev/sda8 vfat 340G 313G 27G 93% /dev/sda7 xfs 200G 143G 58G 72% /dev/sda3 fuseblk 287G 190G 98G 67% /dev/mmcblk0p1 vfat 7,5G 2,1G 5,4G 28%
是否可以?如何?
系統資訊(如果需要):
OpenSuse Tumbleweed Kernel 4.10.1
提前致謝。
df
好吧,編輯(例如使用awk
)的輸出比嘗試調整其選項更容易。所以我要做的是定義一個別名alias my_df="df -hT|awk -F% '$1!=p&&$1!~/tmpfs/{print $1 FS;p=$1}'"
並在您想要減少輸出時使用它。使用您提供的輸入
$ my_df Sist. Arq. Tipo Tam. Usado Disp. Uso% /dev/sda6 btrfs 80G 22G 58G 27% /dev/sda8 vfat 340G 313G 27G 93% /dev/sda7 xfs 200G 143G 58G 72% /dev/sda3 fuseblk 287G 190G 98G 67% /dev/mmcblk0p1 vfat 7,5G 2,1G 5,4G 28%
解釋: 的輸出
df
通過管道傳輸awk
,按照 的指示-F%
,將每個輸入行分成兩部分,$1
分別處理和$2
丟棄。然後,如果$1
與p
(見下文)不同$1
且不匹配tmpfs
,我們使用 final 列印它%
。最後,我們分配 to 的值,$1
這樣p
如果下一行與這一行相同,我們就不會列印它。希望一切都清楚。