Como efetivamente renomear um arquivo na CLI do Linux, inserindo novos caracteres no nome existente?

2

Digamos que eu tenha um nome de arquivo longo, como longfilename . E por questão de brevidade, digamos que "longfilename" seja realmente muito mais longo e mais complexo de digitar. De qualquer forma, quero renomeá-lo para long12345filename na linha de comando. Atualmente estou ciente de executar o comando

mv longfilename long12345filename

No entanto, neste exemplo, o melhor que posso fazer é digitar mv long[tab] long12345filename ... basicamente muita digitação manual. Não há uma maneira de editar um nome de arquivo colocando o nome do arquivo atual e movendo o cursor para onde você deseja inserir / excluir novos caracteres?

    
por Zombies 28.08.2014 / 19:22

3 respostas

2

Se você estiver usando bash, e você tem uma regra para a transformação do nome do arquivo que você pode articular claramente (por exemplo, inserir 12345 após o primeiro g ), você pode fazer

mv longTab !#:$:s/g/g12345/

As palavras que começam com ! são referências de histórico. !# refere-se ao comando atual (até agora). :$ significa a última palavra na linha, portanto, depois de mv longfilename , !#:$ refere-se a longfilename . E finalmente, :s/old/replacement/ é simples de pesquisar e substituir.

    
por 28.08.2014 / 23:58
1

Eu sugeriria o uso de um gerenciador de arquivos para a linha de comando, como:

Comandante da meia-noite

Último gerenciador de arquivos

Vifm

    
por 28.08.2014 / 19:53
0

Pessoalmente, faço isso de maneira iterativa, mas tenho certeza de que existe uma maneira melhor.

mv long[tab][enter] (exibe erro, operando ausente)

[up arrow][cntrl+e][space]!$ (exibe erro, mesmo arquivo)

[up arrow] agora você tem mv longfilename longfilename na linha de comando e você pode mover o cursor onde quiser e editar no lugar.

    
por 28.08.2014 / 19:29