好的,我有一堆以破折号开头的文件,-。这不太好......我想重命名它们。在我的特殊情况下,我只想在他们面前放一个角色。
我发现下面这行应该有效,但由于它是破折号,它没有:
for file in -N*.ext; do mv $file x$file; done
Run Code Online (Sandbox Code Playgroud)
如果我echo
在前面放一个,mv
我会得到一堆
mv -N1.ext x-f1.ext
mv -N2.ext x-f2.ext
Run Code Online (Sandbox Code Playgroud)
这是正确的,当然它会认为第一个文件名是选项。所以当我删除echo
并运行它时,我只会得到一堆
mv: illegal option -- N
Run Code Online (Sandbox Code Playgroud)
我试图将其更改为
for file in -N*.ext; do mv "$file" "x$file"; done
Run Code Online (Sandbox Code Playgroud)
但似乎只是忽略了引号。试图使用单引号,但变量没有扩展......我在这里做什么?
更新:我现在也尝试引用引号。像这样:
for file in -N*.ext; do mv '"'$file'"' '"'x$file'"'; done
Run Code Online (Sandbox Code Playgroud)
当我回应它时,它看起来是正确的,但是当我实际运行它时,我只是得到
mv: rename "-N1.ext" to "x-n1.ext":: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我现在不知道该怎么做...叹气