shell批量修改目录内下文件名

jade在迁移到v2版本时需要将文件的后缀名修改成为.pug

for i in `ls views/*.jade`;
do 
echo "$i"
mv "$i" "${i%.*}.pug";
done

需要注意的点有

  • for循环语句。通过ls列举需要修改目录下的所有文件,view/*.jade匹配到当前目录下的view目下所有后缀名为jade的文件
  • eho语句是用来输出到终端。
echo result
  • mv操作用来移动文件,mv source target
  • shell中用$变量名的方式引用已经定义过的变量,如上面的$i就是for循环得到的单个文件名
  • mv "$i" "${i%.*}.pug"中有%,这是用来截取的,%.*表示截取当前匹配字符的第一个 .及其右侧的字符,这里是.jade。如果用%%就是最后一个.及其右侧的字符。与%当对的#,如#/*表示截取字符的第一个/及其左侧的字符。如果在这里使用,结果就是views/,同样的##表示最后一个/及其左侧的字符。

你可能感兴趣的:(shell批量修改目录内下文件名)