Macos 符号链接源项可以';找不到

Macos 符号链接源项可以';找不到,macos,bash,shell,alias,symlink,Macos,Bash,Shell,Alias,Symlink,我正在尝试在一组目录中创建目录的别名 for D in $(find * -maxdepth 0 -type d) ; do ln -s location/to/directory/ $D/Test2 ; done 看起来链接是正确的(我可以在我的finder窗口中看到),但是当我双击它时,我得到错误操作无法完成,因为找不到“Test2”的原始项。 为什么这样不行?bash脚本有没有办法生成一个“普通”的mac别名?我已经按照建议打开了权限,但运气不好。你想做什么 将链接视为cp命令。

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

for D in $(find * -maxdepth 0 -type d) ; do
    ln -s location/to/directory/ $D/Test2 ;
done
看起来链接是正确的(我可以在我的finder窗口中看到),但是当我双击它时,我得到错误
操作无法完成,因为找不到“Test2”的原始项。


为什么这样不行?bash脚本有没有办法生成一个“普通”的mac别名?我已经按照建议打开了权限,但运气不好。

你想做什么

将链接视为
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
请注意,
ln
cp
命令具有相同的文件顺序

在您的命令中,您反复地将任何
位置/链接到/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
请注意,链接只是将第一个文件的整个引用复制到链接。我想确保这个链接在任何地方都有效,所以我在它前面加上前缀
$PWD
。这样,我的链接如下所示:

$ ls -l ant
lrwxr-xr-x  1 root  wheel  29 Sep  3  2014 ant -> /usr/share/apache-ant/bin/ant

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

您想在当前目录的每个目录中创建一个名为
Test2
的符号链接,并且每个创建的链接都应该指向
location/to/directory

for dir in */; do
    ln -s 'location/to/directory' "$dir/Test2"
done
*
后面的斜杠确保我们只匹配当前目录中的目录,或链接到当前目录中的目录

如果你只对真正的目录感兴趣,而不是符号链接的目录,你可以使用

find . -type d -mindepth 1 -maxdepth 1 \
    -exec ln -s 'location/to/directory' {}/Test2 ';'
请注意,链接目的地与链接的位置相关,因此如果目录不包含
location/to/directory
,则链接将处于“死”状态


您可以通过指定链接的绝对路径来解决此问题。

解释下一票,我将尝试解决此问题。如果符号链接B指向A,则会询问为什么在B上使用finder双击时无法打开资源A。@jjalonso,除非Mac的finder在找到链接时双击时打开符号链接。我使用
$HOME/Documents
将其作为指向
$HOME/Dropbox/Documents
的符号链接。双击Finder中的
$HOME/Documents
,即可正常工作。与Dock或Pathfinder相同。我使用的所有程序都没有符号链接的问题。就Mac而言,
$HOME/Documents
目录就在那里。如果OP的符号链接有问题,则表示符号链接制作不正确。这就是为什么我建议将完整路径放在符号链接中。David,你关于在符号链接中使用完整路径的评论对我起了作用。谢谢