如何复制文件名为“+”的文件并重命名?

我有一个名为+ 13x18_DSC_0800.JPG在Linux服务器上的文件(请不要问我是如何到达那里,因为我不知道它是如何到达那里)。 我想把它重命名为13x18_DSC_0800.JPG。 但是我一直没有能力。 当我试图复制它,我得到;

# cp \+13x18_DSC_0800.JPG asd.JPG cp: cannot stat `+13x18_DSC_0800.JPG': No such file or directory 

这是一些更多的信息。

 #ll -rwxrwxrwx 1 ftpuser renko 2798985 2011-10-14 01:12 +13x18_DSC_0800.JPG* 

除了加号正在杀死一些脚本,我真的不知道什么是错的。 一些更多的信息;

 #uname -a Linux server-1 2.6.38-8-server #42-Ubuntu SMP Mon Apr 11 03:49:04 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux 

任何帮助都是极好的…

通常这意味着在文件名中有一些非打印字符,由于它们不是打印,所以你看不到。

试试ls -la > /tmp/foo然后vi -b /tmp/foo来查看所有的文本。

如果是这样的话,最简单的方法是通过glob处理它,尝试echo *13x18_DSC_0800*来validationglob匹配该文件(并且只有该文件),然后可以执行mv *13x18_DSC_0800* newname.jpeg来重命名它。

使用

 cp "+13x18_DSC_0800.JPG" 13x18_DSC_0800.JPG 

愚蠢和简单的解决scheme,如果你想摆脱只有一个文件 – 使用午夜指挥官:D

但在开始时+符号应该不是一个问题…

  $ touch +13x18_DSC_0800.JPG $ mv +13x18_DSC_0800.JPG test.jpg $ rm test.jpg 

为我工作…

为了我

  cp +13x18_DSC_0800.JPG 13x18_DSC_0800.JPG 

像魅力一样工作,没有任何逃脱。