在终端窗口中,我输入:
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”恢复它。