linux下的批处理建立、重命名、删除文件

今天的内容主要为:批量建立文件,批量重命名文件,批量删除文件。

主要通过循环操作来实现批量这个功能。

基本知识点:新建文件,删除文件和重命名文件的命令:touch,rm,mv,

案例:

[cpp] view plain copy

  1. #! /bin/bash  
  2.   
  3. echo "-----------------the starting line of shell-----------------"  
  4.   
  5. # create new files  
  6. for name in Test{1..3}.h  
  7. do  
  8.     touch $name  
  9. done  
  10.   
  11. #show the files, which is created  
  12. for name in *.h  
  13. do  
  14.     echo $name  
  15. done  
  16.   
  17. #rename the files  
  18. i=0  
  19. for name in *.h  
  20. do  
  21.     newname=${name%.*}-$i  
  22.     mv "$name" "$newname.h"  
  23.     let i++  
  24. done  
  25.   
  26. #show the new files, which is renamed  
  27. for name in *.h  
  28. do  
  29.     echo $name  
  30. done  
  31.   
  32. #remove the files  
  33. for name in *.h  
  34. do  
  35.     rm -rf $name  
  36. done  
  37.   
  38. echo "-----------------the ending line of shell-----------------"  

在终端中运行该程序可以得到以下的结果:

-----------------the starting line of shell-----------------

Test1.h

Test2.h

Test3.h

Test1-0.h

Test2-1.h

Test3-2.h

-----------------the ending line of shell-----------------

通过for循环操作实现了批量功能。该脚本文件会在脚本文件所在的目录中新建立

文件,也可以把它放到自己定义的目录执行。该脚本中没有指定专门的目录,在显示文件的时候,也是会遍历脚本所在目录中的.h文件,所以会把脚本第一阶段建立的.h文件显示出来。该方法在重命名和删除文件时候也在使用。


另外:在重命名的时候,name%.*表示把变量值中.前面的内容提取出来。.后面是*表示匹配。例如:name的值是test1.h.经过提取后会得到test1,.h被舍弃。

还有一种方法:name#*.它表示把变量值中.后面的内容提取出来。例如:name的值是test1.h.经过提取后会得到h,test1.会被舍弃。该方法在提取文件名,或者文件后缀时很有用。

你可能感兴趣的:(linux程序设计)