[英]Symlink multiple files to an existing folder
我有这个命令:
ln -sf src/* lang/golang/src/genericc/
我想将 src 中的所有文件符号链接到现有的 genericc 目录,但是当我运行上述命令时,我在目标中得到损坏的符号链接。 有人知道怎么做吗?
使用相对路径创建的符号链接(即源路径不以“/”开头)相对于链接所在的目录进行解析。这意味着指向 lang/golang/src 中“src/foo.c”的链接/genericc/ 目录将尝试解析为可能不存在的 lang/golang/src/genericc/src/foo.c。
解决方案:或者使用源文件的绝对路径,如下所示:
ln -sf /path/to/src/* lang/golang/src/genericc/
或者,要使*
通配符与正确的命令一起正常工作,请cd
到目标目录,以便相对路径在创建期间的工作方式与解析期间的工作方式相同:
cd lang/golang/src/genericc
ln -sf ../../../../src/* ./
首先,您可以尝试ln -s $PATH_TO_SRC/* $PATH_TO_TARGET/
。 但是,它可能有“参数列表太长错误”。
然后你可以使用:
find $PATH_TO_SRC/ -type f -name "*.jpg" -exec cp -s {} . \;
因为如果你使用ln -s
和 find 或 bash 循环,它只会创建一个空链接。 相反,我们也可以使用cp -s
创建一个 smylink。
使用-r
选项,ln 创建指向实际文件的链接,无论它们在哪里:
ln -srf src/* lang/golang/src/genericc/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.