Linux
每個文件真的可以擁有至少 2 個名稱(因此有 2 個硬連結)嗎?
這個關於 inode 的頁面對於掌握文件系統的表面概念非常有幫助。在同一頁面上,作者插入了這段程式碼片段,證明每個文件或目錄至少有 2 個名稱(和硬連結):
/tmp/junk$ ls -id .. 327681 .. /tmp/junk$ cd .. /tmp$ ls -id . 327681 .
我們可以看到
/tmp
有 3 個硬連結:
- 大概是文件名“tmp”的inode
- 名稱“..”的相同 inode
- 名稱“.”的相同 inode
我的問題:
/tmp
如果給定子目錄,目錄中的“垃圾”文件是否也可以有 3 個名稱(和硬連結)?例如,/tmp/junk/paper_balls
。我的假設:如果“垃圾”文件成為父文件,則可以使用
..
但相對地呼叫它,這意味著目前工作目錄(從中..
鍵入)必須在目錄路徑/tmp/
中。我的問題的答案可能太高級了。
硬連結的初始數量是 1 個文件和 2 個目錄(第一個連結是它在父文件夾中的名稱,第二個硬連結是
.
)。每次在其中創建子目錄時,目錄的連結計數都會增加一個(由於..
在每個子目錄中)。可以使用 輕鬆查看此計數
ls -l
。這是第二個值。看一看:~/x$ ls -la total 16 drwxr-xr-x 2 tomasz tomasz 4096 Sep 24 00:08 . drwxr-xr-x 54 tomasz tomasz 4096 Sep 24 00:11 .. -rw-r--r-- 1 tomasz tomasz 19 Sep 23 18:45 1 -rw-r--r-- 1 tomasz tomasz 19 Sep 23 18:45 2 ~/x$ mkdir d ~/x$ ls -la total 20 drwxr-xr-x 3 tomasz tomasz 4096 Sep 24 00:11 . drwxr-xr-x 54 tomasz tomasz 4096 Sep 24 00:11 .. -rw-r--r-- 1 tomasz tomasz 19 Sep 23 18:45 1 -rw-r--r-- 1 tomasz tomasz 19 Sep 23 18:45 2 drwxr-xr-x 2 tomasz tomasz 4096 Sep 24 00:11 d ~/x$ mkdir d/dd ~/x$ ls -la total 20 drwxr-xr-x 3 tomasz tomasz 4096 Sep 24 00:11 . drwxr-xr-x 54 tomasz tomasz 4096 Sep 24 00:11 .. -rw-r--r-- 1 tomasz tomasz 19 Sep 23 18:45 1 -rw-r--r-- 1 tomasz tomasz 19 Sep 23 18:45 2 drwxr-xr-x 3 tomasz tomasz 4096 Sep 24 00:11 d
在其中創建後,第二個值
d
從 2 上升到 3d/dd
。請參閱下面的 mosvy 評論以獲得更廣泛的觀點。