将某个文件夹下的文件批量重命名

Linux系统下需要进行批量操作最好使用shell脚本,来完成。使用shel脚本批量重名的方法很多,我写了个和大家不一样的脚本。

下图脚本中定义了两个函数,mk和change函数,在shell环境下使用点 . 加脚本名称直接调用。本文使用的是Centos 7系统,来接下来看执行过程,喜欢shell脚本的可以关注我。

自定义mk函数

这个函数就是可以创建100*100个目录,并在每个目录的最后一级创建100个文件,文件个是100*100*100(100万)个。

如下图,调用mk.sh脚本,直接执行mk命令,创建了100万个txt空文件,只用了1分29秒,mkdir和touch的特殊用法{1..100},执行效率挺高的。

#find ./ -mindepth 2 -tpye d

-mindepth 2 搜索的最小路径,当前路径是0以此类推3级目录就是2

如果要是for语句单个touch命令创建文件,touch创建一个空文件要0.004秒,100万个就需要大概66分钟,相差了近60倍。

日常在写脚本的时候,可以自定义一些函数,形成一个函数集,可以直接调用集合,直接用函数名称做为命令使用,方法如下。

#. mk.sh

自定义change函数首先获取到

这个函数就是批量重命名函数,使用了find查找到当前目录下(包含子目录)所有的txt文件,然后使用shell内置变量字符串切割(${i%.*}),将获取到的相对文件路径中,文件的后缀去掉,是不是很方便。

我高估了linux命令mv的执行效率,上图图可以看到,在执行mv命令移动一个空文件需要0.005秒,那么100万个文件就需要1个多小时,不等直接结束了。

总结,shell脚本适用于批量操作和重复性操作,但是毕竟脚本语言,执行效率真的不高,只是方便大家的工作,学好shell脚本对于工作有着不小的帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值