今天參加了一場面試,有道筆試題,把當前目錄(包含子目錄)下所有后綴為“.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")