“ MV文件”,现在丢失了


32

在终端窗口中,我输入:

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

现在我找不到了。走了 我进行了一些搜索,并浏览了可恢复的已删除文件。没有。of 为我提供使用Windows计算机的权利。

有人知道它可能去了哪里吗?


find / -iname thefilename -print 也许 ?
Sergiy Kolodyazhnyy 2015年

@Serg使用thefilename原始名称作为文件,该find命令将不会以新名称找到它。
伊利亚·卡根

我发表评论后才意识到。如果文件丢失,我最初的反应是使用查找,但是我没有意识到的是op重命名了文件而不是移动了文件
Sergiy Kolodyazhnyy 2015年

Answers:


70

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

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

让我分解一下,您运行mv filename ..\..,如果前两个点是父目录,那么前两个点将表示父目录../,但是您使用了反斜杠..\来表示shell逃脱了下一个字符,但是点.对shell没有特殊意义。因此,它将把它当作文字.,最后一个.也加了,所以....文件名有四个点。

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


2
哈哈哈...我从来没有想过。那里是:“ ....”。谢谢!我猜它将第一个点解释为.hideme点。
约翰

2
我可以建议la -A(用大写字母A)。它的作用ls -a与之相同,但不包括...
帕迪·兰道

13

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

  • 该文件尚未删除,这就是为什么在搜索可恢复的已删除文件时找不到该文件的原因。
  • 如同在Windows中,...条目存在于每个目录,并分别指的是“当前”和“父”目录。但是与Windows不同的是,两个以上的点的序列没有任何特殊含义。尽管这很罕见,但您可以随意命名一个完全由点组成的普通文件,只要它的长度至少为三个点即可。
  • 与Windows不同,在Ubuntu中,shell \用作转义符,以确保shell照原样对待后面的字符,而不是赋予它特殊的含义。该.字符在外壳没有任何特殊含义(特别,外壳是不是出了什么负责制定...项目工作)。因此,在您的命令中,\.等效于.
  • heemayl所说,默认情况下,大多数实用程序都不显示名称以开头的文件和目录.。由于....开头为.,因此ls不带-A-a标志运行就不会显示它。

1
那正是我发现它的方式。我想知道为什么我的“ \”没有充当转义符,但是,是的,没有什么可以正常处理的。说得通。
约翰

5

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.