如何判斷一個目錄在OSX中有多少硬鏈接?你怎麼知道一個目錄在OSX上有多少硬鏈接?
在OSX中,您可以製作硬鏈接到目錄。這就是Time Machine的工作原理。我想知道哪些目錄有硬鏈接,因此我可以看到哪些目錄是Time Machine的新增目錄。
我試過ls -l
和stat -f "%l %N" *
,但都沒有給出正確的答案。
任何人都知道如何做到這一點?
如何判斷一個目錄在OSX中有多少硬鏈接?你怎麼知道一個目錄在OSX上有多少硬鏈接?
在OSX中,您可以製作硬鏈接到目錄。這就是Time Machine的工作原理。我想知道哪些目錄有硬鏈接,因此我可以看到哪些目錄是Time Machine的新增目錄。
我試過ls -l
和stat -f "%l %N" *
,但都沒有給出正確的答案。
任何人都知道如何做到這一點?
ls -l
是在目錄中顯示硬鏈接文件的正確方法。
從Wikipedia’s article on hard links:
大多數現代操作系統不允許目錄的硬鏈接,以防止無限遞歸。另外,目錄上的硬鏈接會導致父目錄條目不一致。一個明顯的例外是Mac OS X v10.5(Leopard),它僅在Time Machine備份機制的目錄上使用硬鏈接。符號鏈接和NTFS連接點通常用於此目的。
我不認爲即使Time Machine可以通過定義在文件系統間進行硬連接。我相信製作一個硬鏈接只是創建一個與原始文件號相同的文件(或目錄),並且inode在給定的文件系統中只是唯一的。
我不認爲有任何方法可以統計文件或目錄中有多少個符號鏈接,因爲可以通過符號鏈接指向未掛接捲上的文件。
更新:當您創建一個目錄時,會自動創建兩個硬鏈接。一個來自目錄本身(「。」)和一個來自它的父目錄(「..」)在一個目錄上做一個ls -ld會給你一些指向它的硬鏈接。
我不是在討論跨文件系統的硬鏈接。它在一個文件系統內。 – jasongregori 2011-06-15 04:32:22
您提到了Time Machine,它要求備份位於單獨的文件系統上,因此不能使用硬鏈接。所以我想也許你的意思是符號鏈接。 – Eric 2011-06-15 15:40:05
對不起,延遲迴復。我不確定你是什麼意思。 Time Machine確實使用硬鏈接,但它們都指向同一文件系統中的其他文件夾。因此,您的Time Machine驅動器上的文件夾指向該驅動器上的其他文件夾。 – jasongregori 2011-07-12 22:35:05
當您從其他來源複製內容時,請明確說明您不是該文本的作者,在信用到期時給予抵免,並提供指向原始信息來源的鏈接。堆棧溢出[不支持抄襲。](http://meta.stackexchange.com/questions/54558/would-it-be-wrong-to-copy-paste-questions-from-quora/54559#54559) – 2011-06-13 06:40:38
感謝Bavarious通知我,我會照顧到這一點。 – 2011-06-13 06:42:13
'ls -l'對目錄中的硬鏈接**文件**正常工作,但它似乎是硬連接**目錄**的虛假結果。例如,如果我創建一個文件夾「ls -l」,表明它有2個鏈接。那是對的嗎?我在這裏錯過了什麼嗎? – jasongregori 2011-06-15 04:30:59