当前位置: 首页>>技术教程>>正文


“mv file”现在它不见了

, , , ,

问题描述

在终端窗口中,我键入:

mv filename ..\..      [Note the wrong slash.]

现在我找不到了。不见了。我运行了一些搜索并浏览了可恢复的已删除文件。没有。噗。为我提供使用Windows机器的权利。

谁知道它可能会去哪里?

最佳解决思路

它已经无处可去,它在当前目录中。它已被重命名为....(四个点)。

由于任何前面有.的文件名都被视为隐藏文件,因此它已被隐藏。所以,如果你做ls,你将找不到它。与以往一样,您需要ls-a(或-A)选项才能查看隐藏文件,即ls -a(或ls -A)以查看它。

让我分解一下,你运行mv filename ..\..,如果它是../,前两个点就意味着父目录,但是你使用反斜杠..\表示shell要转义下一个字符,但是点.对shell没有特殊意义。因此,它会将其视为文字.,并且还添加了最后一个.,因此您将四个点....作为文件名。

要恢复为以前的(原始)名称,请运行mv .... filename

次佳解决思路

运行mv .... filename将其重命名。 (mv ..\.. filename也可以,但是\是多余的 – 就像你原来的命令一样。)

  • 该文件尚未删除,这就是搜索可恢复的已删除文件未找到的原因。

  • 与Windows类似,...条目存在于每个目录中,分别指向”current”和”parent”目录。但与Windows不同,两个以上点的序列没有任何特殊含义。虽然这很不寻常,但你可以完全自由地命名一个名称完全由点组成的普通文件,只要它至少有三个点。

  • 与Windows不同,在Ubuntu中,shell使用\作为转义字符,确保shell按字面处理后续字符,而不是赋予它特殊含义。 .字符在shell中没有特殊含义(特别是,shell不负责使...条目工作)。因此,在您的命令中,\.等同于.

  • 作为heemayl says,默认情况下,大多数实用程序不显示名称以.开头的文件和目录。由于.....开始,因此在没有-A-a标记的情况下运行ls没有显示出来。

第三种解决思路

它仍然在同一目录中,现在只是一个’hidden’文件。您可以通过“mv …. filename”恢复它。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2519.html,未经允许,请勿转载。