一次性重命名linux中的所有文件

时间:2013-09-30 10:50:46

标签: linux bash shell

Fedora 18
3.10.12-100.fc18.x86_64

您好,

我有很多类似下面的文件。我想通过删除-unknown-linux-gnu部分来重命名它们。因此libpjsip-x86_64-unknown-linux-gnu.a将为libpjsip-x86_64.a

我尝试了以下操作但失败了,替换了一个空白区域:

rename 's/-unknown-linux-gnu//' *.a

失败并显示消息rename: not enough arguments

libg7221codec-x86_64-unknown-linux-gnu.a        
libpjsip-ua-x86_64-unknown-linux-gnu.a
libgsmcodec-x86_64-unknown-linux-gnu.a          
libpjsip-x86_64-unknown-linux-gnu.a
libilbccodec-x86_64-unknown-linux-gnu.a         
libpjsua-x86_64-unknown-linux-gnu.a
libmilenage-x86_64-unknown-linux-gnu.a 

非常感谢任何建议,

3 个答案:

答案 0 :(得分:4)

使用rename

rename "-unknown-linux-gnu" "" *-unknown-linux-gnu*

答案 1 :(得分:3)

使用mmv

$ mmv -v "*-unknown-linux-gnu*" "#1#2"
libpjsip-x86_64-unknown-linux-gnu.a -> libpjsip-x86_64.a : done

第一个参数的*#1的第二个参数中被mmv调用,因此可以很容易地用它来构建你想要的东西。

答案 2 :(得分:2)

for i in *.a
do
    mv $i ${i/-unknown-linux-gnu/}
done