今天参加了一场面试,有道笔试题,把当前目录(包含子目录)下所有后缀为“.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")

相关文章:

  • 2021-08-15
  • 2021-10-18
  • 2022-01-21
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-14
猜你喜欢
  • 2022-12-23
  • 2021-05-31
  • 2021-05-23
  • 2022-12-23
  • 2021-10-16
  • 2021-08-14
  • 2022-12-23
相关资源
相似解决方案