- 此问题在此处已有答案**:
How to delete file whose name begins with "--"? [duplicate](3个答案)
2天前关闭。
我正在尝试使用move(mv)命令重命名文件
$ls
-0
-1
-2
到
000.json
001.json
002.json
我试过的密码
for i in -*; do
N=3
echo mv -v -- "\"""$i""\"" "$(echo "$i" | sed -r ":r;s/\b[0-9]{1,$((N - 1))}\b/0&/g;tr" | sed "s/-//" | sed "s/$/.json/")"
mv -v -- "\"""$i""\"" "$(echo "$i" | sed -r ":r;s/\b[0-9]{1,$((N - 1))}\b/0&/g;tr" | sed "s/-//" | sed "s/$/.json/")"
done
此代码输出
mv -v -- "-0" 000.json
mv: cannot stat '"-0"': No such file or directory
mv -v -- "-1" 001.json
mv: cannot stat '"-1"': No such file or directory
mv -v -- "-2" 002.json
mv: cannot stat '"-2"': No such file or directory
如果我试着执行mv -v -- "-0" 000.json
,这是可行的,但是当我试着用mv -v -- "\"""$i""\"" "$(echo "$i" | sed -r ":r;s/\b[0-9]{1,$((N - 1))}\b/0&/g;tr" | sed "s/-//" | sed "s/$/.json/")"
执行时,它就不可行了。
有人能帮我修正mv -v -- "\"""$i""\"" ...
命令的这一部分吗,在"\"""$i""\""
中,我只是想加引号,所以它给出了No such file or directory
。
1条答案
按热度按时间uhry853o1#
基本上,要避免以破折号
-
开头的文件出错,请用途:使用Perl的
rename
:删除
-n
交换机,也就是 * 试运行 *,当您的尝试令人满意**时,才真正重命名真实的 *。