批量修改文件名

来自艾毕思知识库
跳转至: 导航搜索

在Shell里,可以使用脚本方便的批量修改文件名。

批量增加后缀

创建文件batch_extension.sh

$ cat > batch_extension.sh
for i in * ; do
    echo mv \"$i\" \"$i.bak\" | sh
done

^C结束输入

$ ./batch_extension.sh

将脚本所在目录的所有文件添加后缀.bak。

批量修改文件名

创建文件batch_rename.sh

$ cat > batch_rename.sh
for file in *.html ; do 
    mv $file `echo $file | sed 's/\(.*\.\)html/\1php/'` ; 
done

^C结束输入

$ ./batch_rename.sh

将脚本所在目录的所有.html文件改名为.php文件

说明

'请在执行脚本前备份需要修改的文件',防止意外丢失!

根据实际需要修改需要的批量增加、修改内容,在创建的sh文件内容里查找例子中对应的关键字进行替换即可。

如果不熟悉脚本语言,请仅替换需要的部分,比如:

批量修改文件名例子中的脚本,现在不需要把.html文件批量修改为.php文件,而是需要吧.txt文件批量修改为.doc文件,则

把batch_rename.sh中的html替换为txt

把batch_rename.sh中的php替换为doc

修改后内容应如下:

 for file in *.txt ; do 
     mv $file `echo $file | sed 's/\(.*\.\)txt/\1doc/'` ; 
 done