是否有可能以某种方式撤消 mv 命令的结果?

Is it possible to somehow undo the results of the mv command?

问题来了。我在一个目录中有一堆文件。然后我在该目录中创建了另一个目录。然后我拼凑了这个命令:

find . -maxdepth 1 -type f -exec mv {} ./1 \;

这个命令本应获取目录中的所有文件并将它们移动到那个新创建的目录,但我没有提供目录名称,而是搞砸了并输入 1,从代码片段可以看出。所以,我最终只有一个名为 1 的文本文件,它现在包含来自一个消失的文件的内容,仅此而已。

我是否有机会恢复丢失的文件(或者可能是文件中的实际数据——它们都是文本文件)或者它们是否几乎永久消失了?


之前:

misha@hp-laptop:~/Documents/prgmg/work$ ls
add.s  bubble.s  cpuid.s  div.s    hello.s  mult.s       sum.s   test.s
a.out  c         demo.s   gas.txt  max.s    print_arr.s  test.c
misha@hp-laptop:~/Documents/prgmg/work$ mkdir asm

之后:

misha@hp-laptop:~/Documents/prgmg/work$ ls
1  asm  c

因此,如您所见,我想将所有汇编语言文件放入 asm 目录中。现在,1 是一个文本文件,它包含来自 gas.txt.

的内容

没有。不容易。对不起。

从备份中恢复是最好的选择。

如果您想进行一些低级文件访问,请参阅 Unix 和 Linux 问题“Recovering accidentally deleted files”的答案。