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 echo
e não como echo !#
no seu $HISTFILE
.