【发布时间】:2011-08-20 23:16:27
【问题描述】:
我想复制目录中的一些文件,重命名文件但保留扩展名。这可以通过简单的cp 使用正则表达式来实现吗?
例如:
cp ^myfile\.(.*) mydir/newname.$1
所以我可以复制保留扩展名但重命名的文件。有没有办法让 cp 正则表达式中的匹配元素在命令中使用它?
如果没有,我会做一个我认为的 perl 脚本,或者如果你有其他方法......
谢谢
【问题讨论】:
-
新名称是否源自旧名称?能否说一下具体情况,或许可以通过简单的shell替换来完成。
-
当然。新名称与旧名称没有链接... 一个真实的例子:cp treepict_313* dir/foobar.$1 foobar 是一个网站用户给的名称,它可以是任何东西。我只是在用户下载之前用所需的名称重命名文件...不要让格式化名称为 treepict_300.ext... 这更清楚吗?
-
或者你可能想将
a.c、a.s、a.o、a.h和a.bak重命名为b.c、b.s、b.o和@98765433b.bak? -
就是这样,但同时将其复制到另一个目录中(我的意思是,保留 a.c、a.s、a.o、a.h 和 a.bak)