Você também pode usar a Expansão do histórico para se referir às palavras na linha de comando atual:
convert -trim -density 400 this_is_a_very_long_filename_of_my_pdf_file.pdf !#:$:r.png
- O designador de evento
!# refere-se à linha de comando digitada até o momento
- O designador de palavras
$ indica a última palavra (antes da expansão)
- Modificador
r remove a extensão do arquivo. Isso também marca o final do texto, que é substituído quando ocorre a expansão do histórico.
.pngé a nova extensão. Isso não pertence à própria expansão.
Quando esta linha é executada, !#:$:ré substituída pelo nome do seu arquivo pdf menos a extensão, criando assim o comando a partir da pergunta:
convert -trim -density 400 this_is_a_very_long_filename_of_my_pdf_file.pdf this_is_a_very_long_filename_of_my_pdf_file.png
Essa linha é então executada diretamente.
Se você deseja verificar o comando após a expansão do histórico, antes da execução, use
setopt histverify
Isso recarregará a linha expandida no buffer de edição, em vez de executá-lo.
Nota: Diferentemente de qualquer outra expansão, a expansão do histórico é executada antes que o comando seja salvo no histórico. Então echo !#, aparecerá como echo echoe não como echo !#no seu $HISTFILE.