Terminal: Use um comando diferente no arquivo anterior

1

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 !!
    
por aldorado 31.10.2013 / 10:46

3 respostas

3

$ echo foo
foo
$ bar !!:$
bar foo
The program 'bar' is currently not installed...

link

    
por 31.10.2013 / 10:58
2

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.
  • % Alt + . - tipo 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 .

    
por 31.10.2013 / 11:27
1

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.

    
por 31.10.2013 / 14:38