Вы также можете использовать расширение истории, чтобы ссылаться на слова в текущей командной строке:
convert -trim -density 400 this_is_a_very_long_filename_of_my_pdf_file.pdf !#:$:r.png
- Обозначение события
!#
относится к командной строке, набранной до сих пор
- Обозначение слова
$
указывает на последнее слово (перед расширением)
- Модификатор
r
удаляет расширение файла. Это также отмечает конец текста, который заменяется, когда происходит расширение истории.
.png
это новое расширение. Это не относится к самому расширению.
Когда эта строка запускается, !#:$:r
она заменяется именем вашего pdf-файла за вычетом расширения, создавая команду из вопроса:
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
Эта строка затем выполняется напрямую.
Если вы хотите проверить команду после раскрытия истории, перед выполнением используйте
setopt histverify
Это перезагрузит расширенную строку в буфер редактирования вместо ее выполнения.
Примечание. В отличие от любого другого расширения, расширение истории выполняется до сохранения команды в истории. Так echo !#
будет выглядеть как echo echo
и не так как echo !#
по вашему $HISTFILE
.