【问题标题】:Remove spaces from filenames in folder从文件夹中的文件名中删除空格
【发布时间】:2013-05-02 22:38:46
【问题描述】:

我有一种情况,我需要每天检查 Xsan 上一个文件夹中的 400 多个文件,并用文件名中的下划线替换空格。

是否有人手头有我可以通过终端运行的脚本,例如可以为我执行此操作?

【问题讨论】:

    标签: macos terminal finder file-rename


    【解决方案1】:

    给你,这会遍历当前目录中的所有文件(和文件夹):

    for oldname in *
    do
      newname=`echo $oldname | sed -e 's/ /_/g'`
      mv "$oldname" "$newname"
    done
    

    请注意,这将覆盖同名文件。也就是说,如果有两个文件具有相同的文件名,但一个有下划线,另一个有空格。在这种情况下,有下划线的那个会被有空格的那个覆盖。这个较长的版本将跳过这些情况:

    for oldname in *
    do
      newname=`echo $oldname | sed -e 's/ /_/g'`
      if [ "$newname" = "$oldname" ]
      then
        continue
      fi
      if [ -e "$newname" ]
      then
        echo Skipping "$oldname", because "$newname" exists
      else
        mv "$oldname" "$newname"
      fi
    done
    

    【讨论】:

    • mv命令中双引号的作用是什么?该行是否等同于 mv $(oldname) $(newname)?
    • 如果没有双引号,带有空格的文件名会导致问题。不,不等同。 $() 语法用于命令替换:en.wikipedia.org/wiki/Command_substitution
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 2016-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多