参考mv操作中的通配符

时间:2014-07-12 13:41:14

标签: bash wildcard mv

这是我的bash代码:

mv ./foo*foo2*foo3*.foo3 ./foo*.foo3

使用./foo*foo2*foo3*.foo3命令重命名文件时,如何从mv引用第二个通配符?

对不起,如果这听起来很愚蠢,但我无法在任何地方找到答案。也许我使用了错误的术语?如果是的话,请告诉我。

2 个答案:

答案 0 :(得分:1)

在原始文件所在的目录上尝试以下rename命令。

rename 's/^.*\./foo\*\./' *.foo3

它将foo*foo2*foo3*.foo3文件重命名为foo*.foo3

答案 1 :(得分:1)

rename工具就是为了这个:

sh$ touch fooAfoo2Bfoo3C.foo3
sh$ rename -v 's|foo.*foo2(.*)foo3.*\.foo3|foo$1.foo3|' *.foo3
#                         ^^^^                ^^
#                     capture the           insert
#                   second "wildcard"  --->  here
fooAfoo2Bfoo3C.foo3 renamed as fooB.foo3