Mysql
du -sh * 顯示比 ls -lah 更多的已用空間
我在用完我的一台客戶端伺服器的磁碟空間時遇到問題。
ls -lah
中的命令輸出/var/lib/mysql
顯示:drwx------ 2 mysql mysql 16K Dec 30 2015 database_xyz
但是當我使用命令檢查同一目錄中的文件大小時
du -sh *
,輸出顯示:22G database_xyz
為什麼這些命令的輸出顯示兩個完全不同的結果?
我的驅動器上只剩下 2.2GB。
root@jon-cust-lifeincity:/var/lib/mysql# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg-root 49G 44G 2.2G 96% / tmpfs 1007M 0 1007M 0% /lib/init/rw udev 1002M 108K 1002M 1% /dev tmpfs 1007M 0 1007M 0% /dev/shm /dev/sda1 228M 16M 200M 8% /boot
編輯:
原來那
database_xyz
實際上是一個目錄,而不是一個文件。所以混亂是由我的大腦彌補的。
您似乎對您被告知的內容有誤解。該
ls -lah
命令列出目前目錄的內容。在這種特殊情況下,這是/var/lib/mysql
. 除其他外,您被告知drwx------ 2 mysql mysql 16K Dec 30 2015 database_xyz
你誤解了這告訴你什麼。
您可以將目錄視為包含目錄條目列表的平面文件。(簡單地說)目錄條目是文件名和指向該文件在磁碟上的位置的指針。此資訊佔用磁碟空間。
什麼
drwx------ 2 mysql mysql 16K Dec 30 2015 database_xyz
/var/lib/mysql
告訴你的是在called中有一個目錄條目database.xyz
。該條目用於d
指示它是目錄的文件類型,除其他外,目錄“文件”的大小為 16K。