无论我如何创建一个符号链接OS X拒绝播放,而是创建一个别名。我已经尝试了几种工具,也通过终端使用了 ln
命令。
我正在全新安装并使用 ln
命令工作正常。知道怎么了?
谢谢, 将
ln -s <source> <dest>
和工具如: seiryu.home.comcast.net/~seiryu/symboliclinker.html
ln
是真的 ln
。在终端中,执行 type ln
确保它是 /bin/ln
。
无论我如何创建一个符号链接OS X拒绝播放,而是创建一个别名。我已经尝试了几种工具,也通过终端使用了 ln
命令。
我正在全新安装并使用 ln
命令工作正常。知道怎么了?
谢谢, 将
ln -s <source> <dest>
和工具如: seiryu.home.comcast.net/~seiryu/symboliclinker.html
ln
是真的 ln
。在终端中,执行 type ln
确保它是 /bin/ln
。
Answers:
让我们尝试一些实验,看几件事。
在终端仿真器中,例如/ Applications / Utilities中的Terminal.app,转到您的主目录( cd ~
)并创建一个目录( mkdir [directory]
)。
确保你进入我们刚创建的目录( cd [directory]
)。
cd ~
mkdir directory
cd directory
之后,制作一个文件;一个简单的文本文件将:
echo "This is a simple text file" > originalfile.txt
ls -l@
现在,尝试创建一个硬链接,如下所示:
/usr/bin/ln originalfile.txt hardlink.txt
然后,尝试创建一个符号链接,如下所示:
/usr/bin/ln -s originalfile.txt symboliclink.txt
现在,在Finder中打开目录 open .
并做一个别名。
在您之前打开的终端模拟器中,另一个 ls
应该让我们这样:
Testarossa:test tonyw$ ls -l@
total 2528
-rw-r--r-- 2 tonyw staff 19 25 Jan 15:51 file.txt
-rw-r--r--@ 1 tonyw staff 426048 25 Jan 15:52 file.txt alias
com.apple.FinderInfo 32
com.apple.ResourceFork 850686
-rw-r--r-- 2 tonyw staff 19 25 Jan 15:51 hard.txt
lrwxr-xr-x 1 tonyw staff 8 25 Jan 15:53 symbolic.txt -> file.txt
Finder GUI也应该导致这种情况:
请注意,Finder GUI将符号链接显示为别名。
符号链接是 不 与别名相同的东西。真正的别名具有扩展属性而不是符号链接。
在Finder GUI中,没有办法告诉硬链接只是一个文件。
对于任何符号链接,属性的左手边都有一个“l”,而且 ls
命令告诉我们它指向的位置。
当你试试这个时,你到底得到了什么?
originalfile.txt
您正在创建一个带有一个硬链接的文件,并在您创建时创建 hardlink.txt
那是一个 第二 硬链接到同一个文件。没有办法(在finder中,或在命令提示符下或其他任何地方)告诉哪个名称是原始名称,哪个是“链接”。他们是 都 链接。每个文件至少有一个硬链接。
OS X可以以不同的方式创建两者。正如你似乎在使用这个词 别号 它是在Finder中为您在其中列出的任何内容创建的文件(或目录)快捷方式,而符号链接(符号链接)可以在终端应用程序使用以下命令启动的shell实例中创建:
ln -s <source file path><target file path>
无法在Finder窗口中直接创建符号链接(间接可能通过从shell脚本调用AppleScript脚本,反之亦然)。
但是这里存在歧义,因为存在另一种别名,这是一个用户定义的昵称,您可以在打开终端会话时为一系列shell命令提供这些昵称。例如在bash shell窗口中:
$ alias listall=ls -al`
这定义了一个昵称 listall
为命令 ls -al
列出当前目录中的所有文件。在此上下文中,“别名”描述了命令昵称 - alias
实际上是一个用于创建此类昵称的bash shell内置命令。
我不是OS X文件系统的专家,只是一个用户和脚本编写者,但是从我已经阅读过的内容中,为什么Finder别名在OS X中没有中断的原因是因为它包含一个唯一的序列号用于其目标文件(称为每个文件和目录存在的inode编号,与其文件路径无关。这意味着如果将目标移动到另一个目录,则别名仍将指向它,而符号链接会因为它使用目标的文件路径而中断。
您无法在Finder中本机创建符号链接(符号链接) ,只有别名。但是,您可以使用 AppleScript创建符号链接 如果这是你最终需要的。
要理解为什么会这样,我们必须理解别名,符号链接和硬链接之间的区别:
别名 是 发现者 公约;这意味着它们只能在Finder中工作,而不能在OS X的UNIX环境中工作。它们是小型数据文件,而shell(bash,sh,zsh等)不知道如何解释它们。
符号链接 (简称符号链接)是 快捷键 这是* NIX文件系统的一部分。 Finder将它们视为准别名,您可以看到它们并使用它们,但它们不包含Finder别名包含的额外元数据。
硬链接 与Finder中的别名非常相似,除了它们不包含原始文件的路径。硬链接在Finder中显示为常规文件;你不会知道你没有使用原始文件,而是链接的文件。硬链接是什么 ln
省略时默认创建 -s
旗。
有关详细信息,我已经更深入地了解了这一点 这个答案 。
这里的底线是,您只能在终端(OS X的UNIX环境)中创建符号链接和硬链接,但全局使用它们。您只能在Finder中创建和使用别名。 (IMO)因此,我远离别名并且几乎完全使用符号链接。
我有这个问题。尝试将链接保存到其他文件夹。通过一些试验和错误,它工作。不知道为什么。