如何在 Ubuntu 中撤消“mv file -”命令

Abr*_*ham 0 linux ubuntu mv

据您所知,-在 Linux 中与不同的命令组合有不同的用法。例如,cdcommand组合时,表示“将目录更改为先前位置”,与or命令组合时mvcat表示stdinstdout

不幸的是我错误地在命令中使用了这个字符mv。我想将文件移动到更改目录之前所在的位置,但我将其移动到了stdin

有什么办法可以恢复我的文件吗?

我运行这个命令:

# mv myfile -
Run Code Online (Sandbox Code Playgroud)

Bas*_*tch 6

我把它移到了标准输入。

不,您移动到了一个按破折号字面命名的文件(您将使用/dev/stdin/proc/self/fd/0来引用stdin,即文件描述符0)。

你想要

mv -i ./- myfile
Run Code Online (Sandbox Code Playgroud)

这是通常的做法(以./奇怪的路径作为前缀)。交互式地-i要求确认。

有时,为奇怪的文件(例如,包含单个换行符的文件名)键入路径甚至不容易。您可以使用globbing(阅读有关shell 扩展),例如mv -i ./? file.

请参阅mv(1)path_resolution(7)以及glob(7)proc(5)

好习惯是避免文件路径中出现奇怪的字符。