好的,我有一堆以破折号-开头的文件。不太好...我想重命名它们。在我的特定情况下,我只想在他们前面放一个角色。
我发现下面的行应该起作用,但是由于它破折号而不起作用:
for file in -N*.ext; do mv $file x$file; done
如果我echo
在前面放mv
一串
mv -N1.ext x-f1.ext
mv -N2.ext x-f2.ext
这是正确的,除了当然会认为第一个文件名是选项。因此,当我删除echo
并运行它时,我得到的只是一堆
mv: illegal option -- N
我试图将其更改为
for file in -N*.ext; do mv "$file" "x$file"; done
但似乎只是忽略了引号。试图使用单引号,但随后该变量未扩展...我在这里做什么?
更新:我现在也尝试引用引号。像这样:
for file in -N*.ext; do mv '"'$file'"' '"'x$file'"'; done
当我回显它时,它看起来正确,但是当我实际运行它时,我得到了
mv: rename "-N1.ext" to "x-n1.ext":: No such file or directory
我刚才不知道如何做到这一点,现在... 叹息
如何使用cli删除名称以“ -r”开头的文件,如何在linux中以正斜杠打开文件,无法重命名以连字符开头的文件
—
phuclv