在单个shell管道或复合命令中将所有文件重命名为大写

时间:2016-10-25 17:02:54

标签: bash pipe piping

我创建了简单的bash脚本。但我必须只使用管道和脚本是不允许的。 你能帮帮我翻译吗?它? 这是脚本:

#!/bin/bash
for x in *
do
   if [ -f "$x" ]
   then
      mv $x $(echo  $x | tr 'a'-'z' 'A'-'Z')
   fi
done

1 个答案:

答案 0 :(得分:0)

假设你有bash 4.0或更新版本:

find . -type f -maxdepth 1 \
  -exec bash -c 'for arg; do [[ $arg = "${arg^^}" ]] || mv "$arg" "${arg^^}"; done' _ {} +