【问题标题】:How to change filenames to lowercase? [duplicate]如何将文件名更改为小写? [复制]
【发布时间】:2014-02-02 20:34:16
【问题描述】:

我需要使用 bash 脚本将特定目录中所有文件的所有名称更改为小写。此外,我不想更改子目录的名称,因为它是在 How to rename all folders and files to lowercase on Linux? 中提出的

【问题讨论】:

    标签: linux bash shell


    【解决方案1】:
    for file in *; do
        [[ -f "$file" ]] && mv "$file" "${file,,}" 2>/dev/null
    done
    

    我不确定哪个版本的 bash 引入了 ${var,,} 扩展。

    【讨论】:

    【解决方案2】:

    试试这个:

    for file in * ; do lower=$(echo $file | tr A-Z a-z) && [[ $lower != $file ]] && echo mv $file $lower ;done
    

    它将回显您需要运行的命令。首先检查它们,然后您可以删除回声并再次运行它以执行实际动作

    【讨论】:

      【解决方案3】:

      尝试以下方法:

      for i in $(find . -maxdepth 1 -type f -name "*[A-Z]*"); do mv "$i" "$(echo $i | tr A-Z a-z)"; done
      

      [1] refer

      【讨论】:

      • 这不是迭代文件的安全方法:如果您找到一个带有空格的文件名,for 循环不会将其视为一个单词。
      • 是的...感谢队友指出这一点。
      猜你喜欢
      • 1970-01-01
      • 2019-11-10
      • 2021-07-17
      • 1970-01-01
      • 2016-11-24
      • 2021-08-05
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多