跳过正文
  1. Posts/

将众多目录下的文件进行大小写转换--shell脚本--遍历

·38 字·1 分钟·
Kubehan
作者
Kubehan
云原生知识栈:深度解析容器技术、Kubernetes、Istio、DevOps 实践、Prometheus 监控、Envoy 代理、Golang 开发及云原生架构与微服务趋势的专业博客

针对该需求,网上大多是使用rename来实现改变文件名来达到大小写转换的需求
但是我试了几次没有成功
网上的案例是这样的:

rename 's/A-Z/a-z/' *

我试了行不通。
琢磨了一下写出下面这个脚本;

#!/bin/bash
dir="./"; 
files=`find $dir -type f`;
for file in $files 
do 
dir_name=`dirname $file`;
ori_filename=`basename $file`;
new_filename=`echo $ori_filename|tr 'A-Z' 'a-z'`>/dev/null; 
mv $dir_name/$ori_filename $dir_name/$new_filename
done

脚本整体思路:
全路径遍历目录下的文件名称,然后使用mv更改文件名称
大写与小写转换改变’a-z’ ‘A-Z’ 的顺序就可以
关于脚本里面牵涉的几个命令用法介绍
点击跳转到使用方法:basename命令及dirname命令使用