以我/opt/myapp
DIR我有一个远程的,自动化过程将被丢弃的形式<anything>-<version>.zip
,其中<anything>
可以从字面上是任何字母数字文件名的文件,并且其中<version>
将是一个版本号。所以,这是什么自动化过程将发表的例子是:击命令行重命名通配符
fizz-0.1.0.zip
buzz-1.12.35.zip
foo-1.0.0.zip
bar-3.0.9.RC.zip
等。通过这个问题的范围控制,我是保证只有其中一个ZIP文件将存在/opt/myapp
在任何给定的时间。我需要编写一个Bash shell命令,它将重命名这些文件并将它们移动到/opt/staging
。对于重命名,ZIP文件需要删除其版本。所以/opt/myapp/<anything>-<version>.zip
被重新命名并移动到/opt/staging/<anything>.zip
。使用上面的例子:
/opt/myapp/fizz-0.1.0.zip
=>/opt/staging/fizz.zip
/opt/myapp/buzz-1.12.35.zip
=>/opt/staging/buzz.zip
/opt/myapp/foo-1.0.0.zip
=>/opt/staging/foo.zip
/opt/myapp/bar-3.0.9.RC.zip
=>/opt/staging/bar.zip
目录此举是明显和容易的,但重命名让我把我的头发拉出来。我需要以某种方式保存<anything>
,然后在命令中重新访问它。 该命令必须是通用的,并且不能有任何参数。
我最好的尝试(它甚至没有接近工作)至今是:
文件= *拉链。文件= ?; mv文件/ opt/staging
有关如何做到这一点的任何想法?
感谢@chepner但**请取消标记为重复数据删除!**在该问题的用户* *知道这个词的“doc”总是出现在文件名,在这里我不知道是什么''是! **这不是同一个问题,需要一个不同的解决方案!**标记适度。 –
smeeb
这是如何使它不同? (建议的副本不再链接,因此很难判断其解决方案是否会工作)。 –