我想重命名a_1.0.tgz
为b_1.0.tgz
,因为1.0
可能会更改为任何版本号,我该如何实现?
例如,mv a*.tgz b.tgz
如果不需要保留版本号,则可以使用。
zsh附带了实用程序zmv
,它正是用于该目的的。虽然zmv
不支持正则表达式,但它确实提供了文件名生成模式(也称为globlob)的捕获组。
首先,您可能需要启用zmv
。可以通过将以下内容添加到您的文件中来完成~/.zshrc
:
autoload -Uz zmv
然后,您可以像这样使用它:
zmv 'a_(*)' 'b_$1'
这将重命名所有匹配的文件a_*
,从而a_
将其替换为b_
。如果您想减少一般性,当然可以调整模式:
仅重命名.tgz
文件:
zmv 'a_(*.tgz)' 'b_$1'
在将.tgz
扩展名更改为时仅重命名文件.tar.gz
zmv 'a_(*).tgz' 'b_$1.tar.gz'
只重命名a_1.0.tgz
:
zmv 'a_(1.0.tgz)' 'b_$1'
要成为保存方,您可以先运行zmv
该选项-n
。这只会打印出可能发生的情况,而实际上不会改变任何内容。有关更多信息,请参阅man zshcontrib
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句