Saya memiliki server Ubuntu 20,04 yang diinstal pada satu drive 8GB. Instalasi default memiliki beberapa "snap" yang diinstal juga. Jadi, ada beberapa sistem file "squashfs" yang juga dilaporkan oleh df
perintah:
# df -mT
Filesystem Type 1M-blocks Used Available Use% Mounted on
/dev/root ext4 7877 1837 6025 24% /
devtmpfs devtmpfs 465 0 465 0% /dev
tmpfs tmpfs 477 0 477 0% /dev/shm
tmpfs tmpfs 96 1 95 1% /run
tmpfs tmpfs 5 0 5 0% /run/lock
tmpfs tmpfs 477 0 477 0% /sys/fs/cgroup
/dev/loop0 squashfs 18 18 0 100% /snap/amazon-ssm-agent/1566
/dev/loop1 squashfs 94 94 0 100% /snap/core/9066
/dev/loop2 squashfs 55 55 0 100% /snap/core18/1705
/dev/loop3 squashfs 69 69 0 100% /snap/lxd/14804
/dev/loop4 squashfs 70 70 0 100% /snap/lxd/14890
/dev/loop5 squashfs 55 55 0 100% /snap/core18/1754
tmpfs tmpfs 96 0 96 0% /run/user/1000
Seperti yang Anda lihat, hanya ada 1.837 MB data yang disimpan di (hanya) disk.
Sekarang, saya mencoba daftar penggunaan disk untuk setiap direktori yang ada di bawah root (/
) menggunakan perintah berikut:
# du -smc /* 2>/dev/null
0 /bin
48 /boot
0 /dev
8 /etc
1 /home
0 /lib
0 /lib32
0 /lib64
0 /libx32
1 /lost+found
1 /media
1 /mnt
1 /opt
0 /proc
1 /root
1 /run
0 /sbin
1116 /snap
1 /srv
0 /sys
1 /tmp
1166 /usr
601 /var
2938 total
Output menunjukkan sejumlah besar ruang disk yang digunakan oleh /snap
direktori, yang tentu saja tidak benar.
Apa cara yang benar untuk menghitung ukuran file yang berada saja pada sistem file "disk nyata"? Menambahkan opsi -x
ke du
tidak membuat saya merasa nyaman, karena di masa depan saya mungkin memiliki sistem file "disk nyata" lain yang dipasang di bawah /home
misalnya dan saya ingin yang akan dihitung dalam du
keluaran.
Jawaban yang Diterima:
Tidak seperti df
, sejauh yang saya tahu du
tidak memberikan --exclude-type
untuk melewati tipe sistem file tertentu. Namun Anda dapat mengecualikan direktori tingkat atas tertentu dengan pola glob:
du -smc --exclude=/snap /* 2>/dev/null
atau (untuk mengecualikan sistem file fana juga) dan dengan asumsi shell Anda mendukung ekspansi brace:
du -smc --exclude=/{proc,run,sys,snap} /* 2>/dev/null