Mac终端中批量修改文件名

这是一个简单的在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
  • 使用冒号可以截取字符,有两种格式:
    a, ${变量名:开始位置:截取长度}, 从左往右数位置,第一个字符的位置为0。位置和长度都必须大于0;
    b,${变量名:开始位置,结束位置},第一个参数为大于等于0的任意值,第二个参数为正数表示从左往右截取掉几个字符,为负数表示从右往左截取掉几个字符。

3,第三部分 done 表示循环结束。
语句的每一个部分都必须以分号结束。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容