Puede usar las capacidades de sustitución de texto de su shell. En bash
, podrías usar una bestia como:
mv blob/a_long_directory_name/c/xx !#:$:gs^c/xx^evenmore/yy
Para desglosarlo:
!#
es la línea actual escrita hasta ahora
:$
pide elegir la última palabra (reemplazar con un número n
para elegir n
la palabra) de la cadena en consideración ( !#
en este caso). La última palabra de la línea escrita hasta ahora sería la palabra anterior.
:gs^xx^yy
realiza g
la sustitución textual global ( ) s
en la palabra resultante, reemplazando 'xx' con 'yy'. ^
es solo un delimitador para que el s
comando permita su uso /
en sus patrones.
Este método es un poco más general, ya que le permite reemplazar cualquier parte de la ruta ('xx') con cualquier otra palabra ('yy').
Finalmente, como con cualquier manipulación de historial, es bueno tener las opciones de shell apropiadas establecidas (por ejemplo, en ~/.bashrc
). En este caso
shopt -s histverify
mostrará la línea editada después de presionar Intro, por lo que aún puede editarla y verificar si hay errores.
No estoy seguro de por qué usarías una construcción como esa, pero funciona en este caso.
even_more
ruta relativa ...