求大牛解释一下:把所有文件名中的大写改为小写: rename 'tr/A-Z/a-z/' *

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
lexdene
帖子: 434
注册时间: 2010-02-21 16:19
来自: 大连
送出感谢: 1 次
接收感谢: 2 次
联系:

求大牛解释一下:把所有文件名中的大写改为小写: rename 'tr/A-Z/a-z/' *

#1

帖子 lexdene » 2011-03-30 14:02

把所有文件名中的大写改为小写:

代码: 全选

rename 'tr/A-Z/a-z/' *
是什么原理?
tr是什么意思?
两个'/'是什么意思?
'*'是什么意思?
头像
lilydjwg
论坛版主
帖子: 4165
注册时间: 2009-04-11 23:46
系统: Arch Linux
送出感谢: 11 次
接收感谢: 127 次
联系:

Re: 求大牛解释一下:把所有文件名中的大写改为小写: rename 'tr/A-Z/a-z/' *

#2

帖子 lilydjwg » 2011-03-30 22:48

lexdene 写了:
把所有文件名中的大写改为小写:

代码: 全选

rename 'tr/A-Z/a-z/' *
是什么原理?
tr是什么意思?
两个'/'是什么意思?
'*'是什么意思?
看来你不懂 Perl 了,不然你看一下那144行(四分之三都是注释/文档)Perl 源码挺不错的。

tr 应该是 Perl 的一个函数,相当于 shell 的 tr 功能。其他我用过的命令有 s (替换)和 y (功能似乎和 tr 一样)。后面的 /A-Z/a-z/ 自然是 tr 的参数了,其中 / 是分隔符,也可以换成别的字符。最后的 * 是要重命名的文件们,由 shell 扩展。

想详细了解的话,建议你还是学下 Perl / 到 Perl 版问下。
头像
fang0319
帖子: 628
注册时间: 2011-01-05 14:21
送出感谢: 0
接收感谢: 0

Re: 求大牛解释一下:把所有文件名中的大写改为小写: rename 'tr/A-Z/a-z/' *

#3

帖子 fang0319 » 2011-03-30 23:09

这要从何说起呢 :em04 :em04
O(∩_∩)O
头像
lexdene
帖子: 434
注册时间: 2010-02-21 16:19
来自: 大连
送出感谢: 1 次
接收感谢: 2 次
联系:

Re: 求大牛解释一下:把所有文件名中的大写改为小写: rename 'tr/A-Z/a-z/' *

#4

帖子 lexdene » 2011-03-31 8:54

哦哦哦,听起来好像很复杂的样子……
回复

回到 “Shell脚本”