关于软链接 ln -s,链接的是目录,但是怎么打开这个链接?无法用 cd 打开,因为他不是目录啊。

2014-07-30 11:25:31 +08:00
 DestinedRey
如题,求解,谢谢。
22802 次点击
所在节点    macOS
13 条回复
CoX
2014-07-30 11:29:10 +08:00
链接是目录就应该能用cd打开吧,ubuntu这样是可以打开的
Vanson
2014-07-30 12:07:36 +08:00
可以
popbones
2014-07-30 12:18:21 +08:00
可以,因为虽然他不“真的”是目录,但是符号链接对于cd操作是透明的。
ooonme
2014-07-30 12:19:48 +08:00
osx 上的文件夹连接,是一个叫做替身的东西,其实更想要的是文件夹的硬链接,osx本身是不支持的,通过一个小脚本可以做到,参考 https://github.com/selkhateeb/hardlink,希望能帮助你
ooonme
2014-07-30 12:21:02 +08:00
v2ex 为什么不加个编辑器...连接地址 https://github.com/selkhateeb/hardlink
DestinedRey
2014-07-30 13:30:11 +08:00
@popbones -bash: cd: PAT: Too many levels of symbolic links
请问提示这个是什么意思。。
sandtears
2014-07-30 13:33:57 +08:00
@DestinedRey
ln -s 后面的 path 请写绝对路径
DestinedRey
2014-07-30 14:08:37 +08:00
@ooonme Not found -bash: cd: PAT: Too many levels of symbolic links 请问这个是怎么回事。。
dorentus
2014-07-30 15:14:03 +08:00
@ooonme 你这个是目录硬链接,楼主说的是软链接,不是一个东西……

@DestinedRey 目录的软链接,cd 进不去的话,说明软链接的目标不存在或者你的用户对那个目录没有浏览权限。
popbones
2014-07-30 15:50:06 +08:00
@DestinedRey 估计你的符号链接链的是自己,所以无限循环了。你可以ls -l看一下。
zy2013
2014-07-30 16:03:03 +08:00
可以打开,应该是建立软连接时目标目录已存在或者路径不对,ln -s /home/www /var/www ,我是参考这个建立的。 建立连接前var目录下www目录不存在。
popbones
2014-07-30 16:08:00 +08:00
@ooonme 你说的替身,也就是Alias,是Finder的功能,和symbolic link不是回事。它相当于Windows下最基本形态的快捷方式文件,既一个文件中记录了目标文件的地址,由文件管理器负责解析,在命令行模式下看只是一个普通的文件而已(以前不行,现在的不知道行不行,很久没用Windows了)。不过替身和软链接在Finder里面图标都是一样的,既左下角有个箭头。

在Mac,对于终端来说文件替身只是一个普通的文件,是不能够cd的。所以Alias一般都是面向桌面的时候采用,程序和系统一般都用软链接。但是终端时可以处理软硬链接的。

然后硬链接又是另外一回事了。Mac OS X支持硬链接,不过仅限于文件,目录只能是软链接或替身。

Finder支持替身、软链接、硬链接;Mac的Terminal支持软链接、硬链接,不支持替身。
johnwatson5412
2022-03-31 11:57:39 +08:00
@sandtears 就是这个问题。。。 源文件 和 目标文件都要写绝对路径。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/125234

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX