如何通过添加第一个符号 - 点来使用 bash 重命名文件?

问题描述 投票:0回答:4

我想将我的文件从

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

bash file-rename
4个回答
3
投票

你太努力了。

mv myscript.js .myscript.js


3
投票

支架扩张

mv {,.}myscript.js

此处大括号的左侧是空字符串,右侧是

.
。所以
mv
看到了参数
myscript.js
.myscript.js


2
投票

您可以使用

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

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

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

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

1
投票

不要使用模式作为

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

无法访问当前命令的前一个参数。如果您想避免输入太多内容,请对两个文件名使用

Tab

(这样最终会得到 mv myscript.js myscript.js),然后使用

Ctrl+Left
Ctrl+Right 快速移动到文件的开头第二个参数用于插入缺失的 .

不过,您可以访问上一个命令的

参数

。但这不是 BASH 的功能 - 这是 readline 的功能。

© www.soinside.com 2019 - 2024. All rights reserved.