侧边栏壁纸
博主头像
★街角晚灯★博主等级

博观而约取 厚积而薄发

  • 累计撰写 446 篇文章
  • 累计创建 182 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux批量更改文件后缀名

WinJay
2013-08-29 / 0 评论 / 0 点赞 / 521 阅读 / 1445 字 / 正在检测是否收录...
温馨提示:
文章发布较早,内容可能过时,阅读注意甄别。。。。

今天又有同学问linux下怎样批量更改文件后缀名,这个问题被别人问到三次了,所以这里给出几个解决方法

一.rename解决

1.Ubuntu系统下

rename 's//.c//.h/'./\*

把当前目录下的后缀名为.c的文件更改为.h的文件

2.CentOS 系统下

[root@NercAuth guidao]# ls
14db42ea6a1759.jpg
156b36714ceead.jpg
16164910_4ef3121d91.jpeg
16164910_6f9ae22dda.jpeg       
16164911_ed60b405ad.jpeg
16164912_80bfcd0f2a.jpeg
[root@NercAuth guidao]# rename .jpeg .jpg *.jpeg 

把当前目录下的后缀名为.jpeg 的文件更改为.jpg的文件

image.png


网上搜到的什么正则然并卵

1.rename 's/jpeg$/jpg/g' *.jpeg 
2.rename 's/\.jpeg/\.jpg/' *

二.shell 脚本解决

#!/bin/bash

#http://blog.csdn.net/longxibendi
find ./ -name *.c  | while read i
do
       echo “$i”;
       mv $i.c  $i.h
done

三.find xargs 解决

find ./ -name “*.c” | awk -F “.” ‘{print $2}’ | xargs -i -t mv ./{}.c  ./{}.h

注意,第三种方案是递归的更改,会更改当前目录下及其子目录下所有匹配文件

四.参考:

http://blog.csdn.net/longxibendi/archive/2010/09/16/5889055.aspx

0

评论区