Вы можете использовать возможности подстановки текста вашей оболочки. В 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
относительному пути ...