2007-04-13

shell脚本批量更改文件扩展名(unix/linux/bsd)

此例为把.htm改为.html(红色部分为原扩展名和现扩展名)

for i in *.htm; do mv $i ${i%%\.*}.html; done

#todo 先记录于此,有时间的时候再具体解释是怎么写出来的。

Technorati technorati tags: , , ,

请不要吝惜您的评论,每一条评论,都是我在漫漫长夜前行的力量

6 条评论:

Blogger Solrex Yang 说...

我不认为这样可以啊
除非你是想把某个文件中的 *.htm 改成 *.html 而不是更改某个文件的名字
大概你是想这样写的吧
for i in *.htm;do mv $i ${i%%\.*}.html;done

1:47 下午

 
Blogger tiny 说...

笔误

2:10 下午

 
Blogger tiny 说...

已修改

2:11 下午

 
Anonymous 匿名 说...

rename .htm .html *.htm
如何?

11:29 上午

 
Blogger Yacca 说...

如果文件名里有空格,$i 和 ${i%%\.*}.html 就都要加双引号了。
要不用这个:
find . -type f -name '*.htm' -exec rename 's/htm$/html/' '{}' \;

2:25 上午

 
Blogger 雪剑冰灵 说...

for i in *.htm;do mv $i $.html;done
这个就可以了

5:29 下午

 

发表评论

<< 主页