Você pode usar a Expansão do histórico de bash
, para copiar a linha de comando anterior para sua área de transferência sem executar substituição de comandos, expansões etc. faça:
echo !!:q | xclip -sel clip # or respectively
echo !!:q | xsel -ib
!!
é um atalho para !-1
, referindo-se ao comando anterior. Cólon :
precede o modificador q
, que permite que a expansão cite as palavras substituídas com aspas simples para evitar substituições posteriores.
Exemplo de execução
$ uname -r # run your command
4.10.0-35-generic
$ echo !!:q | xclip -sel clip # copy the previous command to clipboard
echo 'uname -r' | xclip -sel clip # this line shows what’s done
$ xclip -sel clip -o # print clipboard content (just for testing)
uname -r
$ $(xclip -sel clip -o) # run command stored in clipboard (just for testing)
4.10.0-35-generic
Para simplificar isso, você pode criar um alias
ou definir um atalho de teclado nas configurações. Leia man bash
/ EXPANSÃO HISTÓRICA e man history
para saber mais sobre a expansão do histórico.