我下载了linux Tor Browser软件包,它是一个独立的文件夹.我为运行脚本创建了一个符号链接:
$ ln -s torbrowser/start-tor-browser ~/bin/torbrowser
Run Code Online (Sandbox Code Playgroud)
然而,链接在创建时被打破.我所做的只是运行那个命令,没有别的,它被打破了.我做了并得到了:
lrwxrwxrwx 1 synful synful 28 Jul 18 21:52 torbrowser -> torbrowser/start-tor-browser
Run Code Online (Sandbox Code Playgroud)
...这很奇怪,因为torbrowser/start-tor-browser有755个权限.另外,我跑了file:
$ file ~/bin/torbrowser
bin/torbrowser: broken symbolic link to `torbrowser/start-tor-browser'
Run Code Online (Sandbox Code Playgroud)
我为它做了一个新的bash脚本和一个符号链接来测试它,并且没有这样的问题.我不确定为什么它只发生在启动器浏览器上.它具有正常的权限,只是一个普通的bash脚本(即使根据文件命令).
...有任何想法吗?
ric*_*ici 59
知道这一点很重要
ln -s SOURCE TARGET
Run Code Online (Sandbox Code Playgroud)
创建一个名为TARGET的符号链接,它符号链接到字符串 SOURCE.如果SOURCE是相对路径(也就是说,它不是以它开头/),那么它将相对于所在的目录进行解释TARGET.如果它是绝对路径,则它是绝对路径.如果它是一个不能是路径的字符串,或包含不存在的路径或文件,或者不是有效的路径字符串,则无论如何.ln -s不检查SOURCE是否存在或甚至是有效路径.你可以在dirent中存储你想要的几乎任何短的字符串.
所以当你这样做时:
$ ln -s torbrowser/start-tor-browser ~/bin/torbrowser
Run Code Online (Sandbox Code Playgroud)
你在做什么,粗略地说:
bin子目录中创建一个名称的目录条目torbrowser.torbrowser/start-tor-browser新的符号链接是循环的.~/bin/torbrowser链接到~/bin/torbrowser/start-tor-browser,这意味着您必须遵循符号链接才能解析符号链接.如果您尝试使用它,您会看到:
$ cat ~/bin/torbrowser
cat: /home/joshlf13/bin/torbrowser: Too many levels of symbolic links
$
Run Code Online (Sandbox Code Playgroud)
有时 - 通常,甚至 - 符号链接到相对路径的能力非常方便.一个常见的用途是摆脱版本号:
$ ln -s apps/my_fancy_app_v2.63.1 apps/my_fancy_app
Run Code Online (Sandbox Code Playgroud)
现在,我不仅可以在不记住版本字符串的情况下调用my_fancy_app,还可以将整个文件夹移动到其他地方,而不会破坏符号链接:
$ mv apps /usr/local/apps
Run Code Online (Sandbox Code Playgroud)
但有时候 - 就像你的例子,我认为 - 你需要符号链接到绝对路径.
对于权限,符号链接始终具有权限,lrwxrwxrwx因为文件操作使用的实际权限是对真实文件的权限.(您可以认为这意味着任何人都可以遵循符号链接,但这并不完全正确:他们还需要对他们需要遵循的任何目录的读取权限.更准确地说,任何能够看到符号链接的人都可以看到它的名称指向,即使他们无法访问具有该名称的文件.
Adi*_*aju 17
重要的是TARGET您在
ln -s TARGET LINK_NAME
Run Code Online (Sandbox Code Playgroud)
是文件/目录的完整路径。我遇到了这个问题,就我而言,当我cd进入目标目录并执行
ln -s ./eclipse.ini ~/Desktop/eclipse1 导致链接断开
但是当我这样做时ln -s $(pwd)/eclipse.ini ~/Desktop/eclipse它起作用了!