硬連結的用途 - Linux

Anthony avatar
By Anthony
at 2020-05-08T21:36

Table of Contents

最近看軟連結跟硬連結的比較,有整理一下筆記資訊,對於硬連結的觀念是都使用同一個
inode,省硬碟空間等等,但是對於”實務”上還是不是很了解大家平常都使用在那邊?
再請大家給點指教,謝謝



[Linux筆記] 軟連結與硬連結

# /與/home位於不同的partition
ubuntu@ubuntu:~/workspace$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 7092728 5093676 1615720 76% /
none 4 0 4 0% /sys/fs/cgroup
udev 2013844 4 2013840 1% /dev
tmpfs 404788 1036 403752 1% /run
none 5120 0 5120 0% /run/lock
none 2023940 88 2023852 1% /run/shm
none 102400 24 102376 1% /run/user
/dev/sda3 17414428 1007348 15499356 7% /home

# 分別在/與~家目錄建立檔案與目錄
ubuntu@ubuntu:~/workspace$ sudo touch /file1
ubuntu@ubuntu:~/workspace$ touch file2
ubuntu@ubuntu:~/workspace$ mkdir folder1

# 硬連結不支援跨partition
ubuntu@ubuntu:~/workspace$ ln /file1 hardfile1
ln: failed to create hard link ‘hardfile1’ => ‘/file1’: Invalid cross-devi
ce link
ubuntu@ubuntu:~/workspace$ ln -s /file1 softfile1
ubuntu@ubuntu:~/workspace$ ln file2 hardfile2

# 硬連結不支援目錄
ubuntu@ubuntu:~/workspace$ ln folder1 hardfolder1
ln: ‘folder1’: hard link not allowed for directory
ubuntu@ubuntu:~/workspace$ ln -s folder1 softfolder1

# 軟連結的檔案inode不同(965, 667577),硬連結的檔案inode相同(667572)
# 軟連結的屬性不同為變777(rwx),硬連結的屬性相同(-rw-rw-r--)
ubuntu@ubuntu:~/workspace$ ls -il
total 4
667572 -rw-rw-r-- 2 ubuntu ubuntu 0 May 7 17:08 file2
667576 drwxrwxr-x 2 ubuntu ubuntu 4096 May 7 17:08 folder1
667572 -rw-rw-r-- 2 ubuntu ubuntu 0 May 7 17:08 hardfile2
667577 lrwxrwxrwx 1 ubuntu ubuntu 6 May 7 17:08 softfile1 -> /file1
667578 lrwxrwxrwx 1 ubuntu ubuntu 7 May 7 17:08 softfolder1 -> folder1

ubuntu@ubuntu:~/workspace$ ls -il /file1
965 -rw-r--r-- 1 root root 0 May 7 17:07 /file1

# 編輯原始檔案file2,因為inode都一樣(667572),硬連結的檔案大小也會變大
ubuntu@ubuntu:~/workspace$ vim file2
ubuntu@ubuntu:~/workspace$ ls -il
total 12
667572 -rw-rw-r-- 2 ubuntu ubuntu 155 May 7 17:09 file2
667576 drwxrwxr-x 2 ubuntu ubuntu 4096 May 7 17:08 folder1
667572 -rw-rw-r-- 2 ubuntu ubuntu 155 May 7 17:09 hardfile2
667577 lrwxrwxrwx 1 ubuntu ubuntu 6 May 7 17:08 softfile1 -> /file1
667578 lrwxrwxrwx 1 ubuntu ubuntu 7 May 7 17:08 softfolder1 -> folder1

# 刪除原檔案,軟連結就會連結失效(嫁雞隨雞),硬連結檔案還會存在(分家)
ubuntu@ubuntu:~/workspace$ sudo rm -rf /file1
ubuntu@ubuntu:~/workspace$ rm -rf file2
ubuntu@ubuntu:~/workspace$ ls -il
total 8
667576 drwxrwxr-x 2 ubuntu ubuntu 4096 May 7 17:08 folder1
667572 -rw-rw-r-- 1 ubuntu ubuntu 155 May 7 17:09 hardfile2
667577 lrwxrwxrwx 1 ubuntu ubuntu 6 May 7 17:08 softfile1 -> /file1
667578 lrwxrwxrwx 1 ubuntu ubuntu 7 May 7 17:08 softfolder1 -> folder1

--
Tags: Linux

All Comments

Elma avatar
By Elma
at 2020-05-12T08:14
我也很好奇hard link到底都用在哪些地方
Kelly avatar
By Kelly
at 2020-05-14T17:23
soft link有可能會斷鍊而hard link不會,可以想成hardlink
是一群人共同保有1個檔案,直到最後1個人丟棄(delete)該檔
Zanna avatar
By Zanna
at 2020-05-19T15:26
案之前,檔案都會一直存在,任何1人也不用擔心別人刪除讓自
己沒得用
Mary avatar
By Mary
at 2020-05-24T01:08
以前有的時候會用硬連結在不分享資料夾的情況下分享單一
Kama avatar
By Kama
at 2020-05-28T05:36
檔案給別人,還有的時候有些程式遇到軟連結和硬連結的行
Oliver avatar
By Oliver
at 2020-05-30T05:04
為會不太一樣,例如函式庫搜尋路徑可能不同之類的。
Odelette avatar
By Odelette
at 2020-05-30T09:43
話說 FreeBSD 跟 Linux 相比好像很喜歡用硬連結,連功能
Barb Cronin avatar
By Barb Cronin
at 2020-05-30T11:51
現在還會常用到嗎?看起來好像不好用
Michael avatar
By Michael
at 2020-06-01T19:42
類似 busybox 的程式都是硬連結個 146 次而不用軟連結。
Linda avatar
By Linda
at 2020-06-05T19:49
什麼東西還會常用到嗎?
Iris avatar
By Iris
at 2020-06-09T04:57
所以就是在不佔用空間的情況下複製檔案的意思?
這樣我很好奇的是如果在A磁區上的檔案在B磁區建立了硬連
Connor avatar
By Connor
at 2020-06-13T08:16
這樣是不是我刪除A磁區上的檔案後卻仍無法釋出空間?
Hardy avatar
By Hardy
at 2020-06-18T06:50
hard link 建立只能夠在同個磁區屬於區塊空間提供共用.
系統會建立建立幾個人共用。刪除時參考建立數值會減少,
當為0時候空間才真正刪除釋出
Lily avatar
By Lily
at 2020-06-21T08:50
被 pbuilder 搞爆一次 rootfs 就不敢玩 hardlink 了 XD
Callum avatar
By Callum
at 2020-06-22T10:33
原來不同磁區就不能硬連,感謝解說
Hardy avatar
By Hardy
at 2020-06-26T07:58
上面推文應該是要講partition/分區, 磁區是sector,早年軟
Enid avatar
By Enid
at 2020-06-28T23:12
硬碟的儲存資料最小單位. CHS(Cylinder/Head/Sector)模式
Barb Cronin avatar
By Barb Cronin
at 2020-06-29T20:55
後來改LBA模式sector這單字就少用了
Madame avatar
By Madame
at 2020-06-30T17:14
謝謝樓上.只是目前架構複雜lvm等,用分割區也有點怪
Jack avatar
By Jack
at 2020-07-02T10:41
看來就檔案系統這用詞最恰當了(?
Queena avatar
By Queena
at 2020-07-05T06:43
樓上其實是正解.我只是因為看到推文中提及磁區,才用分區
來對應,通常一分割區一檔案系統,但像raid,lvm這些狀況,一
Dorothy avatar
By Dorothy
at 2020-07-09T14:53
個檔案系統包含數個分割區,所以hard link不能跨檔案系統
才是正確說法
Delia avatar
By Delia
at 2020-07-12T23:29
LVM 不是很危險嗎?
Agatha avatar
By Agatha
at 2020-07-15T04:24
話說看別人介紹 openZFS 看起來和 LVM 好像
Adele avatar
By Adele
at 2020-07-16T15:29
我也很好奇 LVM 到底適不適合用.. 之前也聽說過很危險
但我現在管理的環境滿滿的 LVM... 不知道該說什麼好
Audriana avatar
By Audriana
at 2020-07-21T12:04
不過我是使用在 VM 裡面的虛擬硬碟就是了
John avatar
By John
at 2020-07-21T18:47
LVM 大概跟你硬碟壞掉一樣危險
Ingrid avatar
By Ingrid
at 2020-07-22T23:04
lvm是volume管理一種常見管理方式,擔心硬碟故障你傳統
需要後端搭配適當的硬體raid與定期備份機制. 其實目前
lvm 也可以用多個硬碟來源當基底再上面建立 raid5這種
架構,這年頭的lvm已經不是當年的阿蒙了
Iris avatar
By Iris
at 2020-07-24T10:43
那 openZFS 呢,看起來邏輯很像
Hedy avatar
By Hedy
at 2020-07-28T07:31
然後如果重灌,LVM 會出事嗎?
Zora avatar
By Zora
at 2020-07-28T22:00
我的不會 XD
Blanche avatar
By Blanche
at 2020-07-31T09:25
zfs在linux上面還不適合當production環境
Irma avatar
By Irma
at 2020-07-31T16:02
BT不同站點輔種時會用hard link
Jessica avatar
By Jessica
at 2020-08-02T08:28
為何?不是比 LVM 好嗎?
Dinah avatar
By Dinah
at 2020-08-05T03:23
zfs在linux本來就不是穩定的東西,再者lvm目前許多功能
都涵蓋了,像是快照與raid都都是,正式上線環境還比較
單純與穩定
Skylar DavisLinda avatar
By Skylar DavisLinda
at 2020-08-07T03:39
說 ZFS on Linux 不穩定的人真的有用過 ZFS 嗎? 呵呵
John avatar
By John
at 2020-08-10T18:07
歡迎來 pve.tw 參觀各種使用 ZFS on Linux 的
Production Datacenter
Michael avatar
By Michael
at 2020-08-10T20:23
想知道btrfs和zfs的比較
Gilbert avatar
By Gilbert
at 2020-08-14T11:14
查了一下,原來壞軌在 LVM 是有救的,我還以為他和
RAID0 一樣會沒救
James avatar
By James
at 2020-08-15T22:16
所以 ZFS 和 LVM 究竟……
Robert avatar
By Robert
at 2020-08-17T21:45
btrfs當初看有人分析各種檔案系統整體看起來最優就用了
速度和空間的使用都還滿不錯的,但是爆炸只能用自己工具
Frederica avatar
By Frederica
at 2020-08-22T11:56
來救,像testdisk就沒辦法偵測到裡面任何東西
Sandy avatar
By Sandy
at 2020-08-25T06:53
開機碟用btrfs有點後悔就是XD grub不能儲存開機選項XD
Hazel avatar
By Hazel
at 2020-08-26T11:04
data center 用 zfs in linux 的確值得觀摩,想參觀。
Caroline avatar
By Caroline
at 2020-08-28T02:12
記得當初 zfs licence 爭議部分目前不知道是否解了
Queena avatar
By Queena
at 2020-08-30T10:09
可是他名稱有個 open 耶,所以其實他不夠 open 嗎?
openZFS
Frederica avatar
By Frederica
at 2020-09-03T17:46
通常前面有加open的套件,多半是有對應的封閉原始碼套件,
如solaris/opensolaris, jdk/openjdk 等等
Mia avatar
By Mia
at 2020-09-04T10:31
ZFS 的 license 爭議是指 CDDL 和 GPL 之間的問題吧
Hedwig avatar
By Hedwig
at 2020-09-09T07:40
對的。此外目前進行中的 linux kernel 5版本要使用 zfs
目前也有問題。只能夠說 Oracle 收購 Sun 之後真的後續
一堆事情,Java 就是....
Robert avatar
By Robert
at 2020-09-14T00:28
所以現在OpenZFS用另外維護kernel module的方式開發
Christine avatar
By Christine
at 2020-09-16T11:39
加上有Canonical爸爸撐腰就確定沒問題了吧?
Kama avatar
By Kama
at 2020-09-16T17:58
現在連 FreeBSD stable/current 都可以再裝 OpenZFS 了
Faithe avatar
By Faithe
at 2020-09-17T02:02
rsync 可用hardlink做 incremental backup
Tom avatar
By Tom
at 2020-09-20T01:29
虛擬分身和實體分身
Dora avatar
By Dora
at 2020-09-23T08:48
前幾天聽說 OpenZFS 終於出新版支援 Linux 5.6 了
Zora avatar
By Zora
at 2020-09-26T03:46
但 5.7 差不多也要出來了...
Kama avatar
By Kama
at 2020-09-28T13:07
git checkout 跟 worktree 就是用硬連結做的
Cara avatar
By Cara
at 2020-10-02T20:26
MacOS的內建備份工具也是

健保卡憑證元件 NHIICC Bug

Hardy avatar
By Hardy
at 2020-05-07T00:20
不知道健保卡憑證元件在 Linux 上的 bug 要報到哪理去??? systemd-coredump[9154]: Process 9150 (mLNHIICC) of user 1000 dumped core. Stack trace of thread 9152: #0 0x00007f1 ...

Ubuntu 多客戶端金鑰問題

Oscar avatar
By Oscar
at 2020-05-06T23:51
小弟目前用AWS UBUNTU16.04版幫客戶開伺服 目前客戶有自動備份需求,目前我先讓server每天自動dump一份到伺服, 然後用winSCP script做login,同步到我的電腦(開發用),以及客戶電腦。 我和客戶電腦環境都是win10, 目前我這邊每天自動同步我的電腦沒問題。 但是如果我 ...

菜鳥再次挑戰archlinux

Andrew avatar
By Andrew
at 2020-05-06T04:41
剛好最近從 ubuntu 轉 arch 有些心得也想跟大家分享 先說轉 arch 的契機 我現在這台是 msi 的筆電 之前裝 ubuntu 問題非常多 但都是小問題 例如dmesg一直出現啥 BadDLLP 或是剛安裝好筆電沒有聲音之類的 又或是休眠喚醒等半天 最後直接 reboot(物理) ...

CentOS能設定在高解析度調整縮放嗎

Charlie avatar
By Charlie
at 2020-05-05T19:57
版本是CentOS 6.7 最近因為換了4k螢幕 在設定4k解析度的情況下 文字跟圖示都變得超小 請問有類似windows那樣 高解析度下用縮放把文字圖示放大的功能嗎? - ...

wpa_supplicant

Candice avatar
By Candice
at 2020-05-04T23:57
在fedora下軟體是5.4.12-200.fc31.x86_64 利用wpa_supplicant連網 可以連上ssid 但無法得到正確路由 http://fatmantn.blogspot.com/2020/05/wpasupplicant.html 不知到原因 有大大可以幫忙嗎 謝謝 - ...