Hard-Link
為什麼/usr中有很多硬連結
我已經閱讀了這個連結,現在我只是想知道為什麼裡面有很多硬連結
/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=1
到make install
命令的參數來禁用它。