【问题标题】:mv: invalid option -- '0'mv: 无效选项 -- '0'
【发布时间】:2011-09-27 07:55:31
【问题描述】:

如何重命名文件名前带有“-”的文件,例如:“-0001.jpg”

每次我尝试跑步时:

for i in *; do mv "$i" "${i//-/}"; done

或:

for i in *; do mv "$i" "${i#*-}"; done

我收到了这个错误:

mv: invalid option -- '0'
Try `mv --help' for more information.

感谢您的光!

【问题讨论】:

  • 我回答了,但我想这个问题已经出现了,因为这是一个普遍的事实
  • 感谢您的提示。而且,对于记录,我试图在提出问题之前找到一些答案。

标签: bash command-line-interface mv batch-rename


【解决方案1】:
mv ./-00008.jpg to/some/where.jpg
   ^ - start with path...

【讨论】:

  • 虽然许多程序支持--,但此解决方案绝对适用于所有程序。
  • 是的,我有点 GNU 偏见,因为当我不得不使用非 GNU “通用”工具(mv、find、非 GNU awk 之一......) Solaris,我意识到我错过了很多 GNU“扩展”和“增强”。
  • (没有mv "-hey" dest 不会工作,我认为由于之前使用“”将参数正确拆分为argv数组,但是一旦放置在那里,就无法知道“”是否在哪里)
【解决方案2】:

与大多数 gnu 命令一样,在带有连字符的文件名之前使用 -- 开关。它表示“开关结束”。

【讨论】:

    【解决方案3】:

    在开头可以包含“-”的参数之前放一个双 - ;那么--之后就没有选项了。

    mv OPTIONS -- ...
    

    【讨论】:

      猜你喜欢
      • 2016-08-24
      • 2016-12-02
      • 2017-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-16
      • 2013-04-19
      相关资源
      最近更新 更多