Você pode usar os recursos de substituição de texto do seu shell. Em bash
, você poderia usar um animal como:
mv blob/a_long_directory_name/c/xx !#:$:gs^c/xx^evenmore/yy
Para dividir:
!#
é a linha atual digitada até agora
:$
pede para escolher a última palavra (substitua por um número n
para selecionar a n
'palavra) da string em consideração (!#
neste caso). A última palavra da linha digitada até agora seria a palavra anterior.
:gs^xx^yy
faz a g
substituição textual global ( ) ( s
) na palavra resultante, substituindo 'xx' por 'yy'. ^
é apenas um delimitador para o s
comando permitir o uso /
em seus padrões.
Esse método é um pouco mais geral, pois permite substituir qualquer parte do caminho ('xx') por qualquer outra palavra ('yy').
Finalmente, como em qualquer manipulação de histórico, é bom ter as opções de shell apropriadas definidas (por exemplo, in ~/.bashrc
). Nesse caso
shopt -s histverify
exibirá a linha editada depois que você pressionar retornar, para que você ainda possa editá-la e verificar se há erros.
Por que você usaria uma construção como essa, não tenho certeza, mas funciona neste caso.
even_more
caminho relativo ... #