如何使用终端大写当前目录中的所有文件?

时间:2012-07-06 00:07:29

标签: macos svn command-line terminal

我正在尝试使用以下命令将当前工作目录中的所有文件大写:

ls | awk '{system("svn mv " $0 " " toupper(substr($0,1,1)) substr($0,2))}'

然而,我收到以下错误消息:

svn: '.' is not a working copy
svn: '.' is not a working copy
svn: '.' is not a working copy
svn: '.' is not a working copy

我在osx上。能否请你帮忙?提前致谢。

1 个答案:

答案 0 :(得分:0)

你不应该在脚本中使用ls,ls是用于人类呈现数据(并且会使用名称中的空格,特殊文件夹,如。和..等像这里一样惊喜你的脚本等等),试着改为:< / p>

for f in *;do;svn mv $f $(echo $f| tr '[a-z]' '[A-Z]');done

See here for other case conversions alternatives,我使用了tr,因为这里不需要awk。