如何撤消 Ubuntu 中的 "mv file -" 命令

How to undo "mv file -" command in Ubuntu

据您所知,- 与 Linux 中的不同命令组合有不同的用法。例如 in combination with cd command, it means "Change directory to the previous location" and in combination mv or cat command 表示 stdinstdout.

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

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

我运行这个命令:

# mv myfile -

I moved it to stdin instead.

不,您移动到一个以破折号命名的文件(您将使用 /dev/stdin/proc/self/fd/0 来指代 stdin, i.e. the file descriptor 0)。

你想

mv -i ./- myfile

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

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

mv(1) and path_resolution(7) and glob(7) and proc(5)

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