【问题标题】:How to rename file with bash by adding first symbol - dot?如何通过添加第一个符号 - 点来用 bash 重命名文件?
【发布时间】:2015-03-21 11:53:45
【问题描述】:

我想将我的文件从 myscript.js 重命名为 .myscript.js。我怎样才能用 bash 做到这一点?我尝试了不同的选项,例如mv myscript.js \.*,但它不起作用。我尝试通过添加非点符号来进行实验 - mv myscript.js m*,但现在我什至不知道我的文件在哪里(当然,我有一个副本;)。

【问题讨论】:

    标签: bash file-rename


    【解决方案1】:

    你太努力了。

    mv myscript.js .myscript.js

    【讨论】:

      【解决方案2】:

      大括号扩展

      mv {,.}myscript.js
      

      【讨论】:

        【解决方案3】:

        您可以使用rename 实用程序重命名所有*.js 文件,方法是在它们之前放置一个点:

        rename 's/(.+\.js)/.$1/' *.js
        

        或者在纯 BASH 中使用这个 for 循环:

        for i in *.js; do mv "$i" ".$i"; done
        

        【讨论】:

          【解决方案4】:

          不要将模式用作mv(或cp)的目标。在大多数情况下,该命令不会执行您想要或期望的操作:Bash 将在您运行命令时扩展模式,使用文件名在执行命令之前 .所以.* 不匹配任何内容(因为文件还不存在),m* 将匹配任何以m 开头的文件或文件夹。由于您没有收到错误,因此最后一个匹配项很可能是一个文件夹。

          无法访问当前命令的前一个参数。如果您想避免输入过多,请使用 Tab 作为两个文件名(因此您最终会得到 mv myscript.js myscript.js),然后使用 Ctrl+Left Ctrl+Right 快速移动到第二个参数的开头插入缺少的.

          不过,您可以访问parameters of the previous command。但这不是 BASH 的特性——它是 readline 的特性。

          【讨论】:

            猜你喜欢
            • 2013-06-15
            • 2021-09-08
            • 2016-01-03
            • 2013-10-28
            • 2022-12-31
            • 1970-01-01
            • 2021-04-02
            • 1970-01-01
            • 2012-09-29
            相关资源
            最近更新 更多