Linux下rename批量修改文件名

问题:

Linux下怎么批量修改文件名?

解答:

我们知道,在Linux中可以用mv ab 12命令把ab的文件名修改为12,那么假如当有asd1.sol asd2.sol asd3.sol ... asd297.sol297个文件该怎么修改文件名呢?显然是不可能一个一个去mv的。
那么到了用rename的时候了:(如果没有rename命令,可以用sudo apt install rename安装)
用法参考:http://man.linuxde.net/rename
重点在下面,比如这句rename "s/AA/aa/" *把文件名中的AA替换成aa,前面s代表修改,之后AA代表原来的名字,aa代表改之后的名字。
注意:rename有2个版本,分别是c版和prel版,这里用的是有正则表达式的prel版。
现在便可以实现我的目的了:
1.把所有文件 A_ 去掉
2.把所有.sol 结尾的改为 .out
效果如下:

这里写图片描述
顺便说下批量压缩命令:
for i in *; do zip -qr $i.zip $i; doneq代表不显示过程,r代表递归压缩。
解压缩用unzip -q A.zip,这就是把A.zip解压。

感谢:jdocker,woodelf

Logo

更多推荐