Shell一句话批量转换文件名大小写

直接上代码:

1
ls | while read l1; do mv $l1 `echo $l1 | tr '[A-Z]' '[a-z]'`; done;

利用了UNIX的管道设计,意思是列出所有文件,然后执行循环,循环里面将每个文件名转换成小写。

如果需要转换指定文件,比如jpg图片,那也可以这样写:

1
ls *.jpg | while read l1; do mv $l1 `echo $l1 | tr '[A-Z]' '[a-z]'`; done;

如果是把小写转换成大写,那就是这样:

1
ls | while read l1; do mv $l1 `echo $l1 | tr '[a-z]' '[A-Z]'`; done;

其他的可以自行发挥。另外注意操作是不可逆的,记得备份。

最近在读《UNIX编程艺术》,一边也开始系统性地学习Shell。深深地被UNIX设计理念和Shell的强大所折服,所以新设了一个分类,用来记录一些Shell的tips。