Re: [問題] 替身路徑使用

看板MAC作者 (呵呵)時間12年前 (2011/10/13 03:45), 編輯推噓5(509)
留言14則, 4人參與, 最新討論串3/3 (看更多)
我來簡單說明一下 symbolic link 和 alias (替身)的差別 symbolic link 是 file system 層級的東西,所有 unix-like 系統都支援 它是製造出一個 pointer node,指向目標檔案,可使用絕對路徑或相對路徑. 只要有任何存取這個 node 的行為,就會導向到目標去,用法相當單純 而 alias 是 OS 層級的東西,而且 HFS+ 磁區限定,只有 MacOS 看得懂的檔案 當硬碟接上 Linux 或 Windows 時,這個 alias 就形同廢物 但 alias 有一個強大的地方,它是個動態的物件... 不論你的 target 怎麼移動,只要 target 還在同一個磁區上,alias 都會跟上 symbolic link 算是一個單向的 pointer,目標一移動就找不到了 而 alias 會記錄目標的 path, file ID, directory ID, name, file size 當你移動 target 時,原 alias 記錄的 path 失效了.. alias 會根據其它資訊,透過 OSX Spotlight,再從硬碟裡找到目標,並更新 path 所以,不論目標怎麼移動,其實 file/dir ID, name, file size 都是相同的. 就算目標改名改內容,alias 仍會找出最符合的結果. 另外,symbolic link 只能改名字,如果是用相對路徑製造的,本身一移動就失效了 但你可以把 alias 改名字,移到別的地方,甚至還能給它一個專用的 icon。 這項特質對多 users 環境很有用,因為很多地方如 /Applications 只有管理員能寫入 一般 user 可以從 /Applications 製造 alias,放在自己的 ~/Apps 裡面. 使用起來就像是有兩個檔案,有不同的名稱,有不同的 icon,但實際上只有一份程式. 就算管理員把檔案移到其它地方,alias 仍然能繼續使用. alias 相對於 symbolic link 算是複雜許多的東西,功能也相對強大. 但就是 MacOS 專用,HFS+ 限定,目標移動在相同磁區內限定. 若是放在其它磁區,alias 的行為就受限了,無法 dynamic follow.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.211.197.209

10/13 07:30, , 1F
推一個
10/13 07:30, 1F

10/13 14:18, , 2F
哇~ 好詳細
10/13 14:18, 2F

10/13 14:19, , 3F
可以順便請問 原本在下用alias會抓不到檔案的可能原因
10/13 14:19, 3F

10/13 14:19, , 4F
嗎? 很多人說 alias常會怪怪的
10/13 14:19, 4F

10/13 14:19, , 5F
謝啦~
10/13 14:19, 5F

10/13 14:22, , 6F
是跨硬碟問題吧
10/13 14:22, 6F

10/13 16:56, , 7F
因為 alias 會參考目標的許多資訊,不僅僅是 path 而已
10/13 16:56, 7F

10/13 16:58, , 8F
例如 .app 軟體會自動更新,它可能所有內容都改掉了
10/13 16:58, 8F

10/13 16:59, , 9F
alias 原先記錄舊的資訊找不到目標,卻有另一個檔案更符合
10/13 16:59, 9F

10/13 17:00, , 10F
那 alias 就會指向更符合的那個(因為原本的已經不存在了)
10/13 17:00, 10F

10/13 17:02, , 11F
alias 和目標在不同磁區,其實一點都沒問題
10/13 17:02, 11F

10/13 17:03, , 12F
可能出問題的,是目標移到其它磁區,或是目標本身磁區非 HFS
10/13 17:03, 12F

10/13 19:21, , 13F
酷喔 謝啦!
10/13 19:21, 13F

10/14 10:45, , 14F
專業推
10/14 10:45, 14F
文章代碼(AID): #1EbUvk4r (MAC)
文章代碼(AID): #1EbUvk4r (MAC)