$ 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.