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/,同样的##表示最后一个/及其左侧的字符。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,464评论 0 5
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,407评论 0 2
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,779评论 0 11
  • 1.创建文件夹 !/bin/sh mkdir -m 777 "%%1" 2.创建文件 !/bin/sh touch...
    BigJeffWang阅读 10,186评论 3 53
  • 第一章 1.Linux是一套免费使用和自由传播的类UNIX操作系统,它可以基于Intel x86系列处理器以及Cy...
    yansicing阅读 5,484评论 0 9