Linux之mmv命令批量替换文件名(超详细-python结合mmv)

一、前言

   近期工作忙,没有频繁的更新文章,在此感到抱歉,但写的文章内容还是帮助到了不少同学,感谢各位支持与关注。言归正传,以前遇到一个场景,需要批量替换文件名,当时第一个想法就是想使用python,写批处理,这也是一种思路,但经过大佬指点,在遇到一些情况的时候首先考虑是否能用linux命令去解决,linux命令很强大,能轻松处理很多事情,时间就是金钱,效率才是硬道理。

二、各系统安装mmv方法

2.1 CentOS

   在默认情况下,Centos7的网络源中没有mmv的安装包,我们需要先安装epel源,然后再安装mmv工具。

# centos
# 下载阿里云的epel源文件。
wget http://mirrors.aliyun.com/repo/epel-7.repo --directory-prefix=/etc/yum.repos.d
# 清除yum缓存,并重新生成缓存
yum clean all && yum makecache
# 安装mmv
yum -y install mmv

在这里插入图片描述

2.2 Ubuntu And Debain

# ubuntu and debain
apt -y install mmv
sudo apt -y install mmv

在这里插入图片描述

2.3 MacOS

# mac
brew install mmv

在这里插入图片描述

三、使用方法

3.1 常规使用

# 很强大还可以用正则表达式进行匹配
# 显示帮助信息
man mmv
# * 和正则表达式一样,多匹配的意思,一个*就代表一个要保留的#
mmv '*.log' '#1.jpg'
# 替换_log为空,其他保留
mmv '*_log.*' '#1.#2'
# 替换jp为jpe,其他都保留
mmv '*jp*' '#1jpe#2.log'
# ?要保留的字符串,比如1.jpeg.log 替换成 1_log.txt  , 三个?号匹配log
mmv '*.jpeg.???' '#1_#2#3#4.txt'
3.1.1 常规使用示例
# 先新建一些测试文件
touch {1..10}_log.log
# 然后输入常规使用命令即可看到效果

在这里插入图片描述

3.2 携带参数使用

# -m 替换完移动到指定目录
mmv '*.log' -m './aa/#1.jpg'
# -D 替换完移动到指定目录,目录不存在会自动创建
mmv './aa/*_log.*' -D './dd/#1.#2'
# 显示替换过程详细信息 
mmv './dd/*.jpg' '#1.txt' -v
# -c 替换完复制到指定目录
mmv '*.*' -c './dd/#1.#2'
# -o 替换完会覆盖同名文件
mmv '*.*' -o './dd/#1.#2'
3.2.1 携带参数使用示例
# 先新建一些测试文件
touch {1..10}_log.log
mkdir aa
# 然后输入携带参数使用命令即可看到效果

在这里插入图片描述

四、Python结合mmv对所有子目录下的文件进行批量替换文件名

4.1 Python结合mmv源码

代码就这么几行就能搞定,是不是很nice。

import os
# os.walk("./") ./指当前执行脚本的路径,你也可以写绝对路径,如:/tmp 或 c:\\users\\public
for maindir, subdir, file_name_list in os.walk("./"):
    command = "mmv '{0}/*-Englesh.log' '{0}/#1-Chinese.log' -v".format(maindir)
    os.system(command)

4.2 Python结合mmv示例

# 先新建一些测试文件
mkdir aa bb cc
touch ./aa/{11..20}-Englesh.log
touch ./bb/{21..30}-Englesh.log
touch ./cc/{31..40}-Englesh.log
vim pythonMMV.py
# 然后把代码复制进去,随后执行python文件
python pythonMMV.py

在这里插入图片描述
在这里插入图片描述

五、总结

   上面的命令用法自己多测试体会一下就懂了,学计算机的同学linux系统和linux命令还是需要熟悉,在某些工作场景这些命令能对你有很大的帮助,能快速解决你的问题,提升工作效率,后面也会更新关于linux相关知识,比如常用命令、系统搭建(各种服务器)、环境搭建(蜜罐、靶场、渗透工具)等等,持续关注学习更多知识。微信公众号搜索关注艺说IT,分享各种原创技术干货文章,对你有用的话请一键三连,感谢。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值