Ви можете використовувати можливості заміни тексту оболонки. В 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
з'явиться відредагований рядок після натискання клавіші return, тож ви все ще можете редагувати його та перевіряти на помилки.
Чому б ви використовували таку конструкцію, я не впевнений, але в цьому випадку вона працює.
even_more
відносного шляху ...