这是一个简单的在MAC终端中将指定文件夹的文件名进行批量修改的命令
比如:文件夹 media
中原本有三个视频文件夹:
想给每一个视频文件前面都添加一个共同的前缀 『abc』,具体命令如下:
for o in `ls`; do mv $o abc$o; done;
最终效果为:
截屏2023-04-18 02.13.25.png
命令解释:
for...in
为循环语句,整个语句格式分三部分:
1,第一部分设置循环变量和要执行的终端命令,for 变量名 in <终端命令>
,变量名可以任意指定,终端命令需要使用一对半角符号 ` 包裹。
2,第二部分为每次循环的执行语句, do mv $o abc$o
, 这里是执行文件重命名,$
符号是对前面变量的引用。前面的 abc
是普通字符。
以 abc1.mp4
举例,变量支持的扩展语法:
-
%
表示忽略字符串后面匹配的字符,$o
匹配完整文件名称,${o%.mp4}
表示忽略.mp4
后缀,只会匹配文件名abc1
。 - 使用冒号可以截取字符,格式为
${变量名:开始位置,结束位置}
, 开始位置的值通常为0,结束位置为正数表示从前往后数位置,负数表示从后往前数位置。比如${o:0,1}
结果为bc1.mp4
(截取掉从0~1的字符);${o:0,-1}
,结果为4
(截取掉第0位置到倒数最后一个位置前的字符)。
3,第三部分done
表示循环结束。
语句的每一个部分都必须以分号结束。
网友评论