Bash创建正则表达式/通配符链接

时间:2015-09-14 00:32:40

标签: regex bash

我试图创建一个链接,但我只知道文件夹名称的第一部分。例如:

ln -s /root/v1.0.{?}/bin /usr/bin/myapp

在上面我知道它以v1.0开头,但不知道patch版本。我很好奇是否有可能建立这样的符号链接?

2 个答案:

答案 0 :(得分:3)

我现在无法对其进行测试,因为我目前还不在Linux系统上,但据我所知,bash的自动完成功能,ln -s /root/v1.0.*/bin /usr/bin/myapp应该诀窍 - 在前提下,只有一个文件夹匹配该通配符。您可能需要考虑使用ln -sv代替ln -s,以便了解它是否有效以及链接是否指向正确的位置。

答案 1 :(得分:0)

您的代码是正确的,只需从中删除大括号部分即可。 '?'是一个狂野的角色,它应该工作正常。如果你的目录结构如下: /root/v1.0.0/bin /root/v1.0.1/bin 这将工作正常,直到v1.0.9

ln -s /root/v1.0.?/bin / usr / bin / myapp

但是如果版本控制超过9,那么你应该更改野性角色?到*

但是如果你有特定的版本控制结构,它总是一个数字。 我宁愿建议你使用下面的

ln -s /root/v1.0。[0-9] * / bin / usr / bin / myapp

这里它将在myapp目录中创建一个链接。

希望它能在将来帮助你。