我有一个脚本run.sh,我创建了许多符号链接,如pf1,pf2等。
我希望以pf开头的任何内容都映射到此。有没有办法让我创建一个带有通配符的符号链接,例如" pf *"所以我以后不必为pf11,pf12等创建符号链接?
答案 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/"