如何找到没有目的地移动的文件

如何找到没有目的地移动的文件

我遇到麻烦了。我按了“Enter”,但没有输入目标。我在同一目录中有两个文件,它们的名称中有一个共同的标识符。我想将它们移动到一个文件夹中,所以我输入了

mv /路径/文件/标识符*

但在输入目标之前,我按下了“enter”,我的一个文件消失了,该文件的字母顺序更高。现在我找不到那个文件了。我在我的

终端中的 Abhishek@abhishek$ 目录。

有人能详细回答我如何找到它或者它是否被其他文件覆盖吗?我是 Linux 世界的菜鸟,但我知道终端的工作原理。所以我可以执行一些基本命令。

答案1

如果您只有两个文件,例如:

IDENTIFIER_1
IDENTIFIER_2

那么你就IDENTIFIER_2用 的内容覆盖了IDENTIFIER_1

例子:

$ cat IDENTIFIER_1
IDENTIFIER_1

$ cat IDENTIFIER_2
IDENTIFIER_2

$ ls -og IDENTIFIER_*
-rw-rw-r-- 1  0 Mai 19 18:28 IDENTIFIER_1
-rw-rw-r-- 1 13 Mai 19 18:27 IDENTIFIER_2

$ mv IDENTIFIER_*

$ ls -og IDENTIFIER_*
-rw-rw-r-- 1 13 Mai 19 18:30 IDENTIFIER_2

$ cat IDENTIFIER_2 
IDENTIFIER_1

如果你有两个以上的文件,那么就会出现错误:

$ ls -og IDENTIFIER_*
-rw-rw-r-- 1  0 Mai 19 18:28 IDENTIFIER_1
-rw-rw-r-- 1 13 Mai 19 18:27 IDENTIFIER_2
-rw-rw-r-- 1  0 Mai 19 18:28 IDENTIFIER_3

$ mv IDENTIFIER_*
mv: target ‘IDENTIFIER_3’ is not a directory

欲了解更详细的解释,请参阅@Serg

答案2

我只是想扩展一下 AB 发布的答案。

通配符仅将 IDENTIFIER_* 扩展为 IDENTIFIER_* 的所有实例。因此,mv IDENTIFIER_*实际上读作mv IDENTIFIER_1 IDENTIFIER_2

for file in *; do这与 for 循环像 这样、以及echo IDENTIFIER_*等等工作的原因相同。

现在,3 个文件不起作用的原因又是因为命令mv IDENTIFIER_*扩展为,而太多的参数mv IDENTIFIER_1 IDENTIFIER_2 IDENTIFIER_3让您感到困惑。mv

在此处输入图片描述

答案3

您用第一个文件覆盖了第二个文件。

除非你立即卸载分区/设备并尝试使用类似以下工具恢复它,否则它将丢失测试磁盘照相记录删除, 管他呢。

相关内容