把当前目录(包含子目录)下所有后缀为“.sh”的文件后缀更改为“.shell”


今天参加了一场面试,有道笔试题,把当前目录(包含子目录)下所有后缀为“.sh”的文件后缀更改为“.shell”。我当时想到的是用shell脚本解决,思路是先找到所有后缀为.sh的文件,然后截取文件名及路径部分,使用mv命令重命名。但是我当时写的有点问题,下面是修改的版本。

#!/bin/bash

find ./ -name "*.sh" | awk -F '.sh' '{print $1}' | while read filename
do
    mv $filename.sh $filename.shell
done

补充更新:查了下资料,发现有个rename命令更加快捷,之前没有用过,用法还挺简单的

# 修改当前目录(不包含子目录)下的文件
rename .sh .shell *.sh

# 修改当前目录(包含子目录)下的文件
rename .sh .shell $(find ./ -name "*.sh")


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM