También puede usar la expansión del historial para referirse a palabras en la línea de comando actual:
convert -trim -density 400 this_is_a_very_long_filename_of_my_pdf_file.pdf !#:$:r.png
- El designador de eventos se
!#
refiere a la línea de comando escrita hasta ahora
- El designador de palabras
$
indica la última palabra (antes de la expansión)
- El modificador
r
elimina la extensión del archivo. Esto también marca el final del texto, que se reemplaza cuando se produce la expansión del historial.
.png
Es la nueva extensión. Esto no pertenece a la expansión misma.
Cuando se ejecuta esta línea, !#:$:r
se reemplaza por el nombre de su archivo pdf menos la extensión, creando así el comando a partir de la pregunta:
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
Esta línea se ejecuta directamente.
Si desea verificar el comando después de la expansión del historial, antes de la ejecución, use
setopt histverify
Esto volverá a cargar la línea expandida en el búfer de edición en lugar de ejecutarla.
Nota: a diferencia de cualquier otra expansión, la expansión del historial se realiza antes de que el comando se guarde en el historial. Entonces echo !#
aparecerá como echo echo
y no como echo !#
en tu $HISTFILE
.