Disk-Usage
不尊重自己的旗幟?
儘管有以下幫助指令:
root@Andromeda:/# du --help | grep -- -x -x, --one-file-system skip directories on different file systems
以下查詢繼續檢查例如
/proc
這是一個不同的文件系統root@Andromeda:/# du -schx * 13M bin 104M boot 4,0K cdrom 0 dev 16M etc 85G home 0 initrd.img 0 initrd.img.old 802M lib 4,0K lib64 16K lost+found 28K media 4,0K mnt 324M opt du: cannot access 'proc/8303/task/8303/fd/4': No such file or directory du: cannot access 'proc/8303/task/8303/fdinfo/4': No such file or directory du: cannot access 'proc/8303/fd/3': No such file or directory du: cannot access 'proc/8303/fdinfo/3': No such file or directory
為什麼?
root@Andromeda:/# mount | grep -i proc proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
萬用字元在呼叫
*
之前由 shell 擴展。du
因此du
看到這樣的東西:du -schx bin boot dev etc home initrd.img lib lib64 lost+found media mnt opt proc root run sbin selinux srv sys tmp usr var vmlinuz
該
du
命令尊重該-x
標誌並同意跳過不同文件系統上的文件。然後它開始了。首先它處理bin
. 然後它處理boot
. 然後它處理dev
. (你得到了圖片。)稍後它會處理proc
. 依此類推,直到列表結束。請注意,
-x
promise 適用於它正在搜尋的文件樹中的文件和文件系統(它與目前目錄無關)。因此,雖然proc
它在自己的文件系統上,但這無關緊要:du
只會跳過不同文件系統上的文件和目錄proc
。如果您選擇
du -xs /
then/proc
,/sys
和安裝在其下的其他文件系統,/
則會被跳過。