有没有办法用通配符创建符号链接

时间:2017-05-22 19:55:29

标签: bash symlink

我有一个脚本run.sh,我创建了许多符号链接,如pf1,pf2等。

我希望以pf开头的任何内容都映射到此。有没有办法让我创建一个带有通配符的符号链接,例如" pf *"所以我以后不必为pf11,pf12等创建符号链接?

3 个答案:

答案 0 :(得分:3)

没有。符号链接解析由内核处理,而globbing是特定于shell的。

如果将pf*存储在符号链接中,内核将查找名为pf*的文件。理论上你可以readlink并让你的shell扩展读取模式,但是你也可以将模式存储在常规文件中。

答案 1 :(得分:1)

您可以创建符号链接,这些符号链接已损坏(并且在文件存在后会变得完全正常工作),但在文件存在之前不会展开*通配符。其他扩展将有效。使用echo

自行检查
$ echo asdf*
asdf*

此处未展开通配符,但您可以使用

$ echo asdf{1,2,3}
asdf1 asdf2 asdf3

并按照您的预期进行扩展。

答案 2 :(得分:0)

如果系统支持bash(在大多数系统中是这种情况),则可以执行以下操作-

bash -c "ln -s sourcedir/pf* targetdir/"