作者tyf99 (呵呵)
站内MAC
标题Re: [问题] 替身路径使用
时间Thu Oct 13 03:45:48 2011
我来简单说明一下 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
1F:推 mp607:推一个 10/13 07:30
2F:推 tanzmitmir:哇~ 好详细 10/13 14:18
3F:→ tanzmitmir:可以顺便请问 原本在下用alias会抓不到档案的可能原因 10/13 14:19
4F:→ tanzmitmir:吗? 很多人说 alias常会怪怪的 10/13 14:19
5F:→ tanzmitmir:谢啦~ 10/13 14:19
6F:推 tanzmitmir:是跨硬碟问题吧 10/13 14:22
7F:→ tyf99:因为 alias 会参考目标的许多资讯,不仅仅是 path 而已 10/13 16:56
8F:→ tyf99:例如 .app 软体会自动更新,它可能所有内容都改掉了 10/13 16:58
9F:→ tyf99:alias 原先记录旧的资讯找不到目标,却有另一个档案更符合 10/13 16:59
10F:→ tyf99:那 alias 就会指向更符合的那个(因为原本的已经不存在了) 10/13 17:00
11F:→ tyf99:alias 和目标在不同磁区,其实一点都没问题 10/13 17:02
12F:→ tyf99:可能出问题的,是目标移到其它磁区,或是目标本身磁区非 HFS 10/13 17:03
13F:推 tanzmitmir:酷喔 谢啦! 10/13 19:21
14F:推 applewarm:专业推 10/14 10:45