linux批量删除递增文件或linux批量建立文件或重命名文件
首先删除ip3389_1.txt ; ip3389_2.txt ; ip3389_3.txt …… ip3389_46.txt只能删到45
let i=1; while [ $i -lt 46 ]; do rm -r ip3389_$i.txt; let i=$i+1; done
其次
一,批量建立文件。以ascii文件为例,用touch建立20个文件,名字为expe1,expe2,,,expe20.用while循环:
let a=1 # 定义变量用来计数
while [ $a -lt 21 ] # 输入后按Enter。当a<21 时
do # 输入后按Enter。干
touch expe$a # 输入后按Enter。$a将得到到当前a的值
let a=$a+1 # 输入后按Enter。令a递增加1
done #输入后按Enter。结束循环
我们先用ls看当前目录下有什么文件,再输入以上代码:
可见确实达到目的。
二,批量重命名文件。我们把刚刚建立的文件重命名为wow1,wow2,,,wow20.用到mv和while循环:
let a=1 #输入后按Enter。定义变量a来计数while [ $a -lt 21 ] #输入后按Enter。当a的值小于21时
do #输入后按Enter。干
mv expe$a wow$a #输入后按Enter。$a得到当前a的值;在这里,mv起重命名的作用
let a=$a+1 #输入后按Enter。令a的值递增加1
done #结束while循环
来看看效果:
三,批量删除。这有很多方法,可以用通配符,一条命令马上就可以做到;也可以交互式地,在每次删除前询问确认。
用通配符,删除当前目录下以字符wow开头的文件:
rm wow* #输入后按Enter。* 表示匹配任意长的字符
效果如下:
或者,担心误删重要文件,我们可以让它每次对一个文件操作前都问:
for file in * #输入后按Enter。用for循环,对当前目录下所有文件
do #输入后按Enter。干
rm -i $file #输入后按Enter。交互式地删除:回答y将执行,n将不删
done #输入后按Enter。结束for循环
作为例子,先随便建立几个普通文件,再执行输入以上代码:
注意,rm中参数 -i 表时interacitvely,交互地。rm是默认只处理普通文件的,会忽略目录;要处理目录,得加上参数 -R:
for file in *
do
rm -iR $file
done
效果如下: