Linux

在 linux 上,目錄大小為 0 而不是 4096 是什麼意思?

  • February 9, 2011

這是我以前從未見過的一件奇怪的事情——一個目錄,其大小被 ls 報告為 0 而不是 4096,我無法在其中創建任何文件。

# ls -ld lib home
drwxr-xr-x.  2 root root    0 Feb  7 03:10 home  <-- it has zero size
dr-xr-xr-x. 11 root root 4096 Feb  4 09:28 lib
# touch home/foo
touch: cannot touch `home/foo': No such file or directory  <-- and I can't create files in it
# rm home
rm: cannot remove `home': Is a directory   <-- look, it really is a dir

那麼目錄大小為 0 而不是 4096 意味著什麼?

文件系統是 fedora core 14 上的 ext4。

的輸出mount是:

/dev/mapper/vg_dev-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/vda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

輸出du -s /home

0   /home

輸出stat /home

 File: `/home'
 Size: 0           Blocks: 0          IO Block: 1024   directory
Device: 15h/21d Inode: 34913       Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2011-02-07 03:45:46.188995765 -0800
Modify: 2011-02-07 03:11:59.980995019 -0800
Change: 2011-02-06 07:58:45.874995002 -0800

我猜你正在為你的主目錄使用 autofs。

幾個不同的偽文件系統會像這樣出現。偽文件系統是不真正保存文件的文件系統。你會注意到 /proc 也是這樣的。基本上是因為 /home 中什麼都沒有,沒有文件,什麼都沒有。當您嘗試訪問它時,autofs 會看到請求並嘗試根據請求安裝適當的主目錄。使用proc,那些不是真正的文件,它們只是系統上執行的各種驅動程序(和核心)提供的文件的表示。

編輯:關閉 autofs,它會像普通目錄一樣顯示。

引用自:https://serverfault.com/questions/232093