我可以从 /dev/null 恢复文件吗?

kru*_*022 3 data-recovery

mv ~ /dev/null    
Run Code Online (Sandbox Code Playgroud)

将我的主目录移动到一个黑洞。我可以从中恢复我的主目录/dev/null吗?

Oli*_*Oli 28

接受的现有答案至少部分不正确。/dev/null是一个“黑洞”,但您不能将目录移动到它。整件事mv ~ /dev/null似乎是某种骗局。它看起来很危险,但实际上不应该起作用。

不过,我不建议在具有不可替代数据的主目录上测试它。这是一个新用户的快速测试工具,名为test。我们会要求他们把他们的家搬到以太中。

$ sudo adduser test
$ sudo usermod -aG sudo test

$ sudo su test  # we are now running as test but let's check
$ cd ~; pwd
/home/test

$ sudo mv ~ /dev/null 
mv: cannot overwrite non-directory ‘/dev/null’ with directory ‘/home/test’
Run Code Online (Sandbox Code Playgroud)

如果您想要的东西最终在 中/dev/null,则恢复过程与任何其他数据丢失相同(就像您键入 一样rm)。理想情况下,尽快停止使用该磁盘并开始使用 TestDisk 之类的工具进行恢复。我们的标签在这里非常有用。


只是为了澄清您可以将单个文件sudo mv file /dev/null放在哪里,file但这不会删除该文件,而是会替换/dev/null为该文件。这有各种相当重要的后果,因为事情依赖于能够重定向到/dev/null. 无论如何,这里有一个简单的证明以及修复,以防您最终将文件移到顶部:

$ echo "this is my file" > test
$ cat test
this is my file

$ sudo mv test /dev/null
$ cat /dev/null
this is my file

# Fix this!
$ sudo rm /dev/null
$ sudo mknod -m 0666 /dev/null c 1 3
Run Code Online (Sandbox Code Playgroud)

显然,如果您想在将文件cp /dev/null ~/Desktop/file替换为 /dev/null 的系统定义之前快速和(或类似地)拯救您的文件。

  • 根据 [this](http://unix.stackexchange.com/questions/117960/mv-a-file-to-dev-null-breaks-dev-null) 在某些系统中,将文件移动到 /dev/null更换设备而不是移除它。 (2认同)