No Linux, às vezes, renomeio arquivos como este:
mv dir1/dir2/dir3/file.txt dir1/dir2/dir3/file.txt.old
Observe que eu quero apenas renomear o arquivo, não movê-lo para outro diretório.
Existe um comando que me permita executar uma versão abreviada desse comando? Estou pensando em algo como:
mv dir1/dir2/dir3/file.txt file.txt.old
ou talvez até algo como (para adicionar apenas ao nome):
mv dir1/dir2/dir3/file.txt {}.old
Meu objetivo não é ter que especificar o caminho completo novamente.
Sei que esses "exemplos" que escrevi não funcionam, mas é apenas uma idéia do que quero realizar.
Eu não quero ter que entrar no diretório.
(cd dir1/dir2/dir3 && exec mv file.txt{,.old})
tem efetivamente o mesmo desempenho que o código sem o subprocesso, porque isso exec
evita fork()
a chamada de comando externo; portanto, você tem exatamente uma bifurcação de qualquer maneira.