“mv 文件”,现在丢失了

“mv 文件”,现在丢失了

在终端窗口中,我输入:

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

现在我找不到它了。它不见了。我搜索了一番,查看了可恢复的已删除文件。什么也没有。噗。我之前用的是 Windows 机器,真是罪有应得。

有谁知道它可能去哪儿了?

答案1

它没有去任何地方,它在当前目录中。它已被重命名为....(四个点)。

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

让我来分析一下,你运行了mv filename ..\..,如果是../,前两个点表示父目录,但你使用了..\表示 shell 的反斜杠来转义下一个字符,但点.对 shell 没有特殊含义。因此,它会将其视为文字.,并且最后一个.也添加进去,所以你得到了四个点....作为文件名。

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

答案2

运行mv .... filename将其重命名。(mv ..\.. filename也可以使用,但是是\多余的——因为它在你原来的命令中。)

  • 该文件尚未被删除,这就是为什么搜索可恢复的已删除文件没有找到它的原因。
  • 和 Windows 一样,每个目录中都有...条目,分别指向“当前”和“父”目录。但与 Windows 不同,两个以上的点序列没有任何特殊含义。虽然这很不寻常,但您可以完全自由地用完全由点组成的名称来命名普通文件,只要它至少有三个点长即可。
  • 与 Windows 不同,在 Ubuntu 中,shell 用作\转义符,确保 shell 按字面意思处理后面的字符,而不是赋予其特殊含义。该.字符在 shell 中没有特殊含义(特别是,shell 不负责使...条目正常工作)。因此,在您的命令中,\.相当于.
  • 作为heemayl 说,默认情况下,大多数实用程序不显示名称以 开头的文件和目录.。由于....以 开头,因此在没有或标志的情况下.运行时不会显示它。ls-A-a

答案3

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

相关内容