Bash批量更改文件后缀名

 

9/1/2008 1:08:24 PM

转载自http://forum.ubuntu.org.cn/weblog_entry.php?e=6683

在 Bash 下批量更改文件扩展名

2007-10-31 周三, 15:18

在 Bash 下批量更改文件扩展名


如果我想把当前目录下的所有扩展名为 cpp 的文件,改成扩展名为 c 的文件,要怎么办? 用 shell 编程可以很容易的解决这个问题:

1.
#!/bin/bash
2.
for old in *.cpp
3.
do
4.
mv $old `basename $old .cpp`.c
5.
done

特别解释一下第4行的 basename 这个命令,basename 返回文件完整路径中的文件名部分,例如:
# basename /home/galeki/html/index.html
index.html

你也可以在参数中给出文件的扩展名,这样 basename 只会返回文件名除去扩展名的部分:
# basename /home/galeki/html/index.html .html
index

也可以把上面的程序修改一下,让它可以根据参数处理不同的扩展名:

1.
#!/bin/bash
2.
for old in *.$1
3.
do
4.
mv $old `basename $old .$1`.$2
5.
done

把上面这段代码存成 rn ( rename 的缩写 ),如果你想把当前目录下的所有文件的扩展名从 jpg 改成 png ,那么,只要执行: rn jpg png ,即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值