在LInux的实际使用过程中,创建多个文件、修改多个文件、查找文件中的某个部分等需求都需要有一种能够实现文件批量处理的方法,这篇文章主要介绍了常用的一些文件批量操作指令,大家一起学习一下吧。
注意:对[]来说,[1-5]指的是1到5进行模糊匹配,有的话就操作,没有就跳过。[!d-f]|[^d-f]指除了d-f以外。对{}来说,{1…5}表示1-5,{a…c}表示a-c,逐个匹配,如果没有则会报错。
上图指令分别实现了创建 westos@,westos1,westosa,westosA,westo s这几个文件,之后下面的几条指令分别实现了对各自对应文件的删除,其中值得注意的是,在删除文件名包含空格的文件时,在rm -rf 指令后面文件名时不需要用双引号,而创建该文件时需要用双引号引起来,否则无法正常完成此操作。
[westos@MiWiFi-RM2100-srv Desktop]$ touch red{1..5}at #创建red1at,red2at,red3at,red4at,red5at文件 [westos@MiWiFi-RM2100-srv Desktop]$ rm -rf red{1,2}at #删除red1at和red2at文件 [westos@MiWiFi-RM2100-srv Desktop]$ rm -rf red[1-3]at #删除red1at,red2at,red3at文件 [westos@MiWiFi-RM2100-srv Desktop]$ rm -rf red[14]at #删除red1at和red4at文件 [westos@MiWiFi-RM2100-srv Desktop]$ rm -rf red[!15]at #删除除了red1at和red5at的其它几个文件 [westos@MiWiFi-RM2100-srv Desktop]$ rm -rf red[^15]at #删除除了red1at和red5at的其它几个文件 [westos@MiWiFi-RM2100-srv Desktop]$ mkdir linux #创建linux目录 [westos@MiWiFi-RM2100-srv Desktop]$ rm -rf red[13]at #删除red1at和red3at文件 [westos@MiWiFi-RM2100-srv Desktop]$ cp red[2-5]at linux #复制red[2或3或4或5]at文件到linux目录下。模糊匹配,如果没有则跳过,查找下一个文件 [westos@MiWiFi-RM2100-srv Desktop]$ cp red{2..5}at linux #复制red[2和3和4和5]at文件到linux目录下。如果某个文件没有,则会报错。 cp: cannot stat 'red3at': No such file or directory [westos@MiWiFi-RM2100-srv Desktop]$ rm -rf red{2..5}at #删除red[2和3和4和5]at文件,此时正常执行。注意:在删除操作时,经实验可得,模糊匹配和精确查找的结果没有区别,当没有某个文件时,rm 操作也可正常执行,如上图中rm -rf red{2…5}at 在没有red3at文件时,该命令也可正常执行,不会报错,而复制时,则会报错,如上图cp red{2…5}at linux,会产生 cp: cannot stat ‘red3at’: No such file or directory错误。
主要讲了文件批量处理的方法,对所要匹配数据的类型相对应的写法要能够清晰的分开。值得注意的是[]方法和{}方法匹配机制的不同,可以自己动手实验验证一下,加深理解。