不小心用mv命令把一个文件弄丢了。我应该去哪里找它?

我有一个文件,里面有一些凭证;但出于某种原因,它现在被隐藏了。我可以在我的桌面上看到两个名为...的文件夹。它们是从哪里来的?我的文件名是sample.txt。我在使用mv命令时搞砸了,导致文件被隐藏了。现在,我正在努力找出我的文件在哪里。
我需要一些帮助!
编辑:这些是我使用的命令:
1861  mv sample.txt Downloads
1872  find sample.txt
1887  mv .. sample.txt
1888  mv ... sample.txt

3我不知道你的文件在哪里,但这个回答是否解决了你的问题?当在一个文件夹中时,"."和".."是什么意思? - mikewhatever
1.指的是当前目录,..指的是父目录。在Ubuntu中没有隐藏文件这样的概念。隐藏文件只是以.开头命名,例如.sample。你运行了任何移动文件的命令吗? - Kulfy
1如果你在终端中按上箭头,它会显示你的命令历史记录。你可以试一下,找到之前运行的确切命令,并将它们编辑到问题中吗?这样可以揭示你使用的文件路径。 - Tom Brossman
我已经用我使用的命令编辑了我的问题。@TomBrossman - metalHeadDev
这个问题不是重复的...我修改了标题,很明显可以看出它不是重复的。 - Ravexina
1非常密切相关:文件在移动时消失 这是一个(显然相当常见的)情况,即在使用sudo运行mv时,将一个不存在的绝对路径文件作为目标。在这个问题中,一个当前目录中不存在的相对路径文件被错误地用作mv的目标(没有sudo)。这影响到答案的措辞,但原则是相同的。其他差异甚至更小。这可能被视为那个问题的重复。 - Eliah Kagan
1个回答

问题在于像mv source target这样的命令的行为,当target不以/结尾时,取决于是否存在名为target的现有目录(或指向目录的现有符号链接)。有时候它们的行为与你期望的不同。
你展示了四个命令。第一个命令是最重要的。
mv sample.txt Downloads

那个命令移动或重命名了sample.txt
如果当前目录中根本没有叫做sample.txt的文件,那么mv sample.txt Downloads操作失败,没有任何改变。但根据你的描述,似乎确实存在这样一个文件。所以:
1. 如果当前目录中有一个叫做Downloads的目录,那么mv sample.txt Downloads尝试sample.txt移动到名为Downloads的目录中,并且可能成功了。如果Downloads是一个符号链接而不是一个实际的目录,也会发生这种情况。 2. 如果当前目录中没有叫做Downloads的目录,那么mv sample.txt Downloads尝试sample.txt重命名为Downloads。(不是Downloads.txt,只是Downloads。)
如果这个文件在“桌面”目录中,那么第二种情况可能发生了,因为您可能没有一个名为“下载”的目录在“桌面”目录中。但是如果您有,那么您就处于第一种情况。
所以,您应该查看运行“mv sample.txt Downloads”命令时所在的目录中是否有一个名为“下载”的条目。根据之前存在的内容,这应该是以前称为“sample.txt”的文件,或者它应该包含“sample.txt”。
关于你展示的另外三个命令,它们本应不会产生任何变化,也不应该期望它们能提供有关第一个命令效果的任何有用信息。
如果当前目录中没有名为"sample.txt"的文件,那么find sample.txt将不会显示任何内容。如果你想要查找当前目录中包含名为"sample.txt"的文件,无论是直接还是间接包含在内,你可以使用find . -name sample.txt。(当然,这不会找到文件名已经不是"sample.txt"的文件。)
mv .. sample.txt中,..是父目录的名称,即当前目录所在的目录。如果当前目录是/,那么父目录就是/本身。每个目录都有一个..的入口,表示父目录。该命令试图将父目录的..入口重命名为"sample.txt"。这个操作应该会失败,并显示一个错误消息,可能会有点令人困惑,错误消息会报告为"设备或资源忙"。
mv ... sample.txt中,...并没有特殊处理。目录总是包含特殊条目...,但名称...并不特殊。所以你可能没有一个名为...的文件。
假设你没有这样做,那么该命令将失败并且不会产生任何更改。
如果当前目录中确实有一个名为“...”的文件,并且没有名为“sample.txt”的目录(也没有指向目录的符号链接命名为“sample.txt”),那么“...”将被重命名为“sample.txt”。如果“sample.txt”已经存在并且既不是目录也不是指向目录的符号链接,则“sample.txt”将被替换掉,除非它还存在其他硬链接,否则恢复可能会很困难或不可能,这取决于文件系统后续写入了多少次。然而,这种情况很不可能发生,因为你可能从未有过一个名为“...”的文件,并且在运行该命令之前很可能成功地将“sample.txt”重命名为其他位置,或者将其放置在其他位置,而且在你运行命令的目录中目前也看不到名为“sample.txt”的文件。
在极少数情况下,如果当前目录中既有一个名为“...”的条目,又有另一个名为“sample.txt”的目录或指向目录的符号链接条目,“mv ... sample.txt”将尝试将“...”移动到“sample.txt”目录中(或者移动到符号链接所指向的目录中)。

1哇!我刚刚没注意到我的sample.txt在我的桌面上被重命名为Downloads。谢谢你提供的有用信息。下次我尝试将文件移动到另一个目录时,我会记住这些的。 - metalHeadDev
很好的回答... :) - Ravexina