如何通过添加第一个符号 - 点来重命名 bash 的文件?
How to rename file with bash by adding first symbol - dot?
我想将我的文件从 myscript.js
重命名为 .myscript.js
。我怎样才能用 bash 做到这一点?我已经尝试了不同的选项,例如 mv myscript.js \.*
,但它不起作用。我尝试通过添加非点符号进行实验,例如 - mv myscript.js m*
,但现在我什至不知道我的文件在哪里(当然,我有一个副本;)。
你太努力了。
mv myscript.js .myscript.js
您可以使用 rename
实用程序重命名所有 *.js
文件,方法是在它们前面放一个点:
rename 's/(.+\.js)/./' *.js
或者在纯 BASH 中使用这个 for 循环:
for i in *.js; do mv "$i" ".$i"; done
大括号展开
mv {,.}myscript.js
不要使用模式作为 mv
(或 cp
的目标)。大多数情况下,该命令不会执行您想要或期望的操作:Bash 将在您 运行 命令时扩展模式,使用原样的文件名 之前 你的命令被执行了。因此 .*
不匹配任何内容(因为该文件尚不存在)并且 m*
将匹配任何以 m
开头的文件或文件夹。由于您没有收到错误,最后一场比赛很可能是一个文件夹。
无法访问当前命令的前一个参数。如果你想避免输入太多,那么对两个文件名都使用 Tab(所以你最终会得到 mv myscript.js myscript.js
),然后使用 Ctrl+Left 和 Ctrl+Right 快速移动到第二个参数的开头以插入缺失的 .
.
不过您可以访问 parameters of the previous command。但这不是 BASH 的特性——它是 readline 的特性。
我想将我的文件从 myscript.js
重命名为 .myscript.js
。我怎样才能用 bash 做到这一点?我已经尝试了不同的选项,例如 mv myscript.js \.*
,但它不起作用。我尝试通过添加非点符号进行实验,例如 - mv myscript.js m*
,但现在我什至不知道我的文件在哪里(当然,我有一个副本;)。
你太努力了。
mv myscript.js .myscript.js
您可以使用 rename
实用程序重命名所有 *.js
文件,方法是在它们前面放一个点:
rename 's/(.+\.js)/./' *.js
或者在纯 BASH 中使用这个 for 循环:
for i in *.js; do mv "$i" ".$i"; done
大括号展开
mv {,.}myscript.js
不要使用模式作为 mv
(或 cp
的目标)。大多数情况下,该命令不会执行您想要或期望的操作:Bash 将在您 运行 命令时扩展模式,使用原样的文件名 之前 你的命令被执行了。因此 .*
不匹配任何内容(因为该文件尚不存在)并且 m*
将匹配任何以 m
开头的文件或文件夹。由于您没有收到错误,最后一场比赛很可能是一个文件夹。
无法访问当前命令的前一个参数。如果你想避免输入太多,那么对两个文件名都使用 Tab(所以你最终会得到 mv myscript.js myscript.js
),然后使用 Ctrl+Left 和 Ctrl+Right 快速移动到第二个参数的开头以插入缺失的 .
.
不过您可以访问 parameters of the previous command。但这不是 BASH 的特性——它是 readline 的特性。