$ echo foo
foo
$ bar !!:$
bar foo
The program 'bar' is currently not installed...
Eu sei que existe o comando !! para reutilizar o comando anterior. Como alguém poderia reutilizar o arquivo ou diretório especificado no comando anterior, mas usar um comando diferente nele?
Exemplo: desejo ver qual é o conteúdo de um arquivo e, se necessário, excluí-lo. Algo como:
$ cat example.txt
"output indicates deletion"
$ rm !!
$ echo foo
foo
$ bar !!:$
bar foo
The program 'bar' is currently not installed...
Você pode usar:
rm Esc . - tipo rm seguido por Espaço e depois pressione Esc seguido por . (não no mesmo tempo). Se o comando anterior não tiver argumentos, você receberá o comando anterior. rm seguido por Espaço e depois pressione Alt e . (no mesmo tempo). De fato, usando este caminho e continuando a pressionar . (sem liberar Alt ), você obterá o último argumento para cada comando do histórico. Se um comando não tiver argumentos, você receberá o comando em si. rm - neste caso, você obterá todos os argumentos do comando previuos. Se o comando anterior não tiver argumentos, você não receberá nada. Em geral: rm !* Esc . ou <command> Alt + . ou <command> .
Fonte: Execute um comando com o argumento do último comando .
Tudo isso fará o que você deseja:
rm !$
O !$ significa o último argumento do último comando.
rm!:1
!:1 significa o argumento 1 do último comando, em que o próprio comando é o argumento 0. Você pode escolher argumentos individuais do último comando dessa maneira.
^cat^rm^
Substitua a string cat pela string rm no último comando e execute o resultado. Você pode realmente deixar o último ^ neste caso simples.
rm !*
Isso executa rm em todos dos argumentos que não são de comando no último comando. Então argumentos de 1 para $ . Esta variante e a última são úteis se você tiver mais de um argumento para o último comando.