如何从 bash 中的先前命令获取特定参数?

Wuf*_*ers 31 bash command-line command-line-arguments

在 bash 中,您可以使用!*获取上一个命令中的所有参数。例如,如果您执行cp /some/path /some/other/path然后执行mv !*,则第二个命令将扩展为mv /some/path /some/other/path.

有没有这样的东西可以用来从命令访问特定参数而不是所有参数?

Gil*_*il' 38

!*,!历史扩展前缀,*是表示所有参数的单词指示符。你可以记住的一般语法为邦行结肠列(!:列)。有许多可能的快捷方式:默认行是前一行,默认列说明符是“all”,如果列说明符是非数字的(但!3意味着第 3 行),您可以省略冒号。您可以使用!:0来引用命令名称、!:1!:2等,来引用连续的参数、!:$最后一个单词、!:*所有参数等。

另请参见这篇文章由迈克尔MrozekUnix的堆栈交换