找不到符号链接源项

125*_*748 5 macos bash shell symlink alias

我正在尝试在一组目录中创建一个目录的别名

for D in $(find * -maxdepth 0 -type d) ; do
    ln -s location/to/directory/ $D/Test2 ;
done
Run Code Online (Sandbox Code Playgroud)

看起来链接是正确的(我可以在查找器窗口中看到它),但是当我双击它时,出现错误 The operation can't be completed because the original item for "Test2" can't be found.

为什么这不起作用?有没有办法从 bash 脚本创建一个“普通”的 mac 别名?我已经按照此处的建议打开了权限,但没有任何运气。

Joe*_*nto 9

创建链接时使用绝对源路径。这对我有同样的问题很有用。


Dav*_* W. -1

你想做什么?

链接视为命令cp。也许这会有所帮助:

# Copies the 'svnadmin' command from /opt/svn/bin to /usr/local/bin
$ cp /opt/svn/bin/svnadmin /usr/local/bin

# Links the 'svnadmin' command from /opt/svn/bin to /usr/local/bin
$ ln -s /opt/svn/bin/svnadmin /usr/local/bin
Run Code Online (Sandbox Code Playgroud)

请注意,lncp命令具有相同的文件顺序。

在你的命令中,你可以一遍又一遍地将任何location/to/directory/内容链接到。$D/test2

另外,-maxdepth 0不会位于目录的第一级。

我在安装新软件时使用ln,二进制命令位于其他目录中。我没有将$PATH所有这些额外目录包含在内,而是象征性地将它们链接到/usr/local/bin

$ cd /usr/share/apache-ant/bin
$ for file in *
> do
>     [[ -f $file ]] || continue
>     ln -s $PWD/$file /usr/local/bin/$file
> done
Run Code Online (Sandbox Code Playgroud)

请注意,该链接只是将第一个文件的整个引用复制到该链接。我想确保此链接在任何地方都有效,因此我$PWD在其前面添加了前缀。这样,我的链接看起来像这样:

$ ls -l ant
lrwxr-xr-x  1 root  wheel  29 Sep  3  2014 ant -> /usr/share/apache-ant/bin/ant
Run Code Online (Sandbox Code Playgroud)

  • @jjalonso 除了 Mac 的 Finder **在可以找到链接时双击时**会打开符号链接。我使用“$HOME/Documents”来执行此操作,使其成为“$HOME/Dropbox/Documents”的符号链接。在 Finder 中双击“$HOME/Documents”可以按预期工作。与 Dock 或 Pathfinder 相同。我使用的所有程序都没有符号链接问题。就 Mac 而言,“$HOME/Documents”目录就在那里。如果 OP 的符号链接有问题,则说明符号链接未正确创建。这就是为什么我建议将完整路径放入符号链接中。 (2认同)