如何交换最后两个命令行参数?

如何交换最后两个命令行参数?
$ ln -s ./dir/target.txt /path/to/source.txt{cursor here}

如何交换文件在命令行中键入的文件名?Alt+T交换单词,而不是文件名,导致ln -s ./dir/target.txt /path/to/txt.source.

理想情况下,解决方案也应该"filenames with quotes.txt"正确解释。

可以通过一些 readline 和/或 bash 配置来完成,或者通过巧妙地使用现有的快捷方式来完成吗?

答案1

部分答案基于{}表示光标:

$ ln -s ./dir/target.txt /path/to/source.txt{}

Ctrl+ W(如果一次还不够,请重复此操作,但不要这样做Backspace

$ ln -s ./dir/target.txt {}

Ctrl+{ , , , }, ,

$ ln -s {}./dir/target.txt 

Ctrl+ Y,Space

$ ln -s /path/to/source.txt. {}/dir/target.txt

准备好。

答案2

我认为这可以使用 bang 命令来完成:

!:0 !:2 !:1

!:0 word designator 0, the zeroth word.
!:n The nth word.


man bash

词指示符,部分。

相关内容