如果您输入
mv a.txt b.txt
然后意识到您犯了一个错误,而不是重新键入该行并切换参数,而是存在类似以下内容:
mv a.txt b.txt --reverse
答案1
我不知道 GNU 中有任何这样的论点mv
,但如果你使用的是 bash,阅读线可以帮助你:
shell-transpose-words
(M-C-t
)将点之前的单词拖过点之后的单词,同时将点移动到该单词之后。如果插入点位于该行的末尾,则会调换该行的最后两个单词。字边界与
shell-forward-word
和相同shell-backward-word
。
所以:
$ mv bar/baz\ foo foo\ bar/baz
^ cursor here
按Esc然后CtrlT(或AltCtrlT) 结果:
$ mv foo\ bar/baz bar/baz\ foo
^ cursor here
答案2
不幸的是,事实并非如此。但是,您可以使用 shell 的文本编辑功能来节省击键次数。下面,^
表示光标位置。
示例:重击
- 启动情况:
mv a.txt b.txt ^
- 按Ctrl+w
“最后一个字”(mv a.txt ^
b.txt
) 被剪切并存储在内部缓冲区中。 - 按Ctrl+Left直到光标位于前面
a.txt
mv a.txt ^
- 按Ctrl+y
粘贴最后删除的单词。mv b.txta.txt ^
- 插入一个空格
它仍然很麻烦,但速度更快。注意如果你的终端模拟器吞下了这些击键中的任何一个,那么不幸的是你就不走运了。
答案3
您可以创建一个名为 example 的脚本unmv
,将其放置在您的任意位置$PATH
(例如在 中/usr/local/bin
):
#!/bin/sh
mv "$2" "$1"
然后,在您不小心键入 后mv a.txt b.txt
,您只需键入即可unmv a.txt b.txt
恢复更改。