當我創建目錄時,輸入ls -l。它會顯示2個鏈接,而我創建文件並通過ls -l命令檢查長列表,然後它只顯示1個鏈接。誰能告訴我,這背後的原因.... Long listing of Home directory爲什麼在Unix中創建目錄和文件時鏈接不同
在這裏你可以看到文件(e.txt)有1個鏈接,而目錄(阿密特)擁有2鏈接....
當我創建目錄時,輸入ls -l。它會顯示2個鏈接,而我創建文件並通過ls -l命令檢查長列表,然後它只顯示1個鏈接。誰能告訴我,這背後的原因.... Long listing of Home directory爲什麼在Unix中創建目錄和文件時鏈接不同
在這裏你可以看到文件(e.txt)有1個鏈接,而目錄(阿密特)擁有2鏈接....
我總是瞭解額外的鏈接是由於「。」引起的。在創建目錄時自動創建的條目。這實際上是目錄的硬鏈接。
我不確定,但我認爲這是莫里斯巴赫書中的作業問題。在舊版本的Unix中,沒有mkdir(2)
系統調用。你必須mknod()
(一個鏈接),然後再添加2個鏈接:一個來自「。」。到新節點(第二個鏈接),然後將「..」鏈接到父節點(更改父鏈接數)。因此,每個初始目錄有2個鏈接。我不確定有關確切的書(「UNIX操作系統的設計」?),但這就是爲什麼Unix類文件系統上的目錄至少有2個鏈接。這也是爲什麼他們添加了mkdir()
系統調用;前面的3步過程是單調乏味且容易出錯的。
你好Erik,我明白了你的意思,但是那個文件呢。 –
我不確定我是否理解。一個文件的名字是1個鏈接。沒有鏈接的inode是一個未引用的inode,並且應該位於空閒列表中。如果不是,文件系統需要一個'fsck(8)'。 –
如果你還沒有讀過它們,我建議Maurice Bach的書(上面),或者Leffler和Kirk McKusick的(等)「4.3 Bsd Unix操作系統的設計和實現」。 如果有人知道Linux上的血統書,請告訴我們。 –
在這兩種情況下都使用'/ bin/ls -al'。確保'ls'不是別名(例如在你的'〜/ .bashrc'中) –
[在Linux中是什麼是雙點(..)和單點(。)?](http:// stackoverflow。問題/ 23242004/what-is-double-dot-and-single-in-linux) – codeforester
不,它與它無關..buddy –