Symlink

硬連結真的會佔用這麼多磁碟空間嗎?

  • January 27, 2018

我發現我需要使用無法看到別名/符號連結的特定程序(Ableton Live)的硬連結,這當然是我組織所有工作文件的方式。但是製作硬連結是在創建看起來是原始文件的副本。

它們實際上佔用的空間與原版一樣多嗎?還是文件系統(本例中為 OSX)僅顯示磁碟上實際數據的大小,而在兩個地方引用它的事實實際上並沒有使數據量增加一倍?

你說的第二件事完全正確。文件內容在磁碟上只存在一次。硬連結是一個額外的引用,它佔用的空間非常小——目錄條目的大小,即文件名的長度加上幾個字節。

我不知道這是否適用於 OSX,但在我方便的 GNU coreutils 版本中,du它知道硬連結,因此您可以使用它來獲得一組文件總大小的準確報告。如果它找到一個文件的多個連結,它只會將它添加到總數中一次。ls -l另一方面,做錯事並將它在目錄中看到的所有內容添加到它的total行中。

$ ls -sl
total 296
296 -rw-r--r-- 1 user group 300324 Feb 17 19:08 f1
$ du
296     .
$ ln f1 f2
$ ls -sl
total 592
296 -rw-r--r-- 2 user group 300324 Feb 17 19:08 f1
296 -rw-r--r-- 2 user group 300324 Feb 17 19:08 f2
$ du
296     .
$ cp f1 f3
$ ls -sl
total 888
296 -rw-r--r-- 2 user group 300324 Feb 17 19:08 f1
296 -rw-r--r-- 2 user group 300324 Feb 17 19:08 f2
296 -rw-r--r-- 1 user group 300324 Feb 17 19:08 f3
$ du
592     .
$

最終的展示將是創建一個超過磁碟一半大小的巨大文件。然後看看你可以創建多少個硬連結。應該不少。

引用自:https://unix.stackexchange.com/questions/345867