你能在 bash 中用标志重复最后一个命令吗?

Mat*_*son 2 linux productivity bash command-line

有没有办法用额外的标志重复你的最后一个命令?

例子:

说我这样做:

rm myFavouriteDirectory
Run Code Online (Sandbox Code Playgroud)

我会得到回复:

rm: myFavouriteDirectory/: is a directory
Run Code Online (Sandbox Code Playgroud)

显然我的意思是:

rm -rf myFavouriteDirectory
Run Code Online (Sandbox Code Playgroud)

有没有办法用标志!! -rf(这不起作用)重复最后一个命令

Ale*_*bes 6

请参阅 中的“历史扩展” man bash

我所知道的最接近的是:
!!:0 -rf !*

!!:0是前一个命令中的第一个单词,!*除了第一个(即参数)之外的所有内容。

但在实践中,我总是输入:
rm -rf !*

在 GNU 发行版中,!! -rf(即把标志放在最后)仍然适用于大多数命令,但它通常不适用于 BSD 和 OSX。这取决于命令如何处理参数。