Вы можете использовать возможности подстановки текста вашей оболочки. В bash, вы можете использовать зверя, как:
mv blob/a_long_directory_name/c/xx !#:$:gs^c/xx^evenmore/yy
Чтобы сломать это:
!# текущая строка набрана
:$просит выбрать последнее слово (замените на число, nчтобы выбрать n'слово) рассматриваемой строки ( !#в данном случае). Последнее слово в строке, набранной до сих пор, будет предыдущим словом.
:gs^xx^yyвыполняет глобальное ( g) текстовое замещение ( s) в полученном слове, заменяя «xx» на «yy». ^это просто разделитель для sкоманды, разрешающей использование /в ваших шаблонах.
Этот метод немного более общий, поскольку он позволяет заменить любую часть пути ('xx') любым другим словом ('yy').
Наконец, как и при любых манипуляциях с историей, хорошо иметь соответствующие параметры оболочки (например, в ~/.bashrc). В таком случае
shopt -s histverify
После нажатия кнопки возврата отобразится отредактированная строка, поэтому вы все еще можете ее отредактировать и проверить на наличие ошибок.
Почему вы используете такую конструкцию, я не уверен, но в этом случае она работает.
even_moreотносительному пути ...