Hard-Link

為什麼/usr中有很多硬連結

  • March 6, 2018

我已經閱讀了這個連結,現在我只是想知道為什麼裡面有很多硬連結/usr

例如,在我的 Ubuntu 伺服器中,安裝了git,我在這裡找到了命令git/usr/bin/git. 我執行ls -l /usr/bin/git並得到如下輸出:

-rwxr-xr-x 119 root root 11178080 Mar  6 03:48 /usr/bin/git

如您所見,有 119 個硬連結…

為什麼這裡需要119個硬連結?通俗的講,我們有了環境變數PATH,並且已經放入了執行檔/usr/bin/,另外,出於兼容性的原因,我們可以創建軟連結,我們可以隨時隨地執行,為什麼會有一些硬連結usr呢?

的部分輸出find /usr -samefile /usr/bin/git

/usr/libexec/git-core/git-prune
/usr/libexec/git-core/git-diff-index
/usr/libexec/git-core/git-ls-remote
/usr/libexec/git-core/git-merge-recursive
/usr/libexec/git-core/git-push
/usr/libexec/git-core/git-update-index
/usr/libexec/git-core/git-check-mailmap
/usr/libexec/git-core/git-interpret-trailers
/usr/libexec/git-core/git-archive
/usr/libexec/git-core/git-upload-archive
/usr/libexec/git-core/git-rev-parse
/usr/libexec/git-core/git-ls-files
/usr/libexec/git-core/git-am

的所有硬連結/usr/bin/git都在/usr/libexec/git-core/.

這些git連結與 PATH 無關,它們是一種節省空間的措施。

一般來說,在大多數情況下,對於“已安裝”的軟體,硬連結在可能的情況下比符號連結更可取,因為它們更有效且更有彈性。您會看到很多/usr/bin帶有硬連結的二進製文件,包括perl,這很好。

git軟體包確實傾向於使用符號連結,因為涉及大量連結以及可能導致. 如果您git從原始碼安裝,它會盡可能預設使用硬連結;您可以通過添加NO_INSTALL_HARDLINKS=1make install命令的參數來禁用它。

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