Answers:
ln
确实有多个参数,但是在这种情况下请不要忘记提供目标目录。
因此,在您的示例中.
是目标目录,因此它应该像
ln -s ../source/*.bar .
来自man ln
; 上面的命令使用第三种形式:
ln [OPTION]... [-T] TARGET LINK_NAME (1st form)
ln [OPTION]... TARGET (2nd form)
ln [OPTION]... TARGET... DIRECTORY (3rd form)
ln [OPTION]... -t DIRECTORY TARGET... (4th form)
- 在第一种形式中,创建一个名为LINK_NAME的TARGET链接。
- 在第二形式中,在当前目录中创建指向TARGET的链接。
- 在第3和第4个表单中,创建指向DIRECTORY中每个TARGET的链接。
*.bar
。它将创建一个名称为的链接"*.bar"
,这不是您想要的。
shopt -s failglob
; 参见例如unix.stackexchange.com/a/216227/33390(在等效的zsh是setopt nomatch
,它是由默认接通)
使用 find
certainDir="/path/to/dir"
find -name "*.bar" -exec ln -s {} "$certainDir" \;
另外,请记住在符号链接中使用完整路径(如果可能)。
find $certainDir -name "*.bar" -exec ln -s {} \;
吗?为什么要使用完整路径?当我在wihch上移动目录树时,知道链接保持完整很方便,它具有一些内部链接。