Se você renomear o diretório de trabalho atual, a maioria das shells não notará a alteração (na variável $PWD
ou no prompt, por exemplo), então seria melhor usar uma função em vez de um script para que você pode notificar o shell da alteração depois de fazer isso, como:
rename_cwd() {
cd . || return
new_dir=${PWD%/*}/$1
mv -- "$PWD" "$new_dir" &&
cd -- "$new_dir"
}
Isso pressupõe que o diretório atual não é /
e que o diretório de destino ainda não existe (veja a opção -T
com o GNU mv
para melhorar o assunto nesse caso).
Observe que, em algumas circunstâncias, $PWD
pode estar fora de sincronia com a realidade, portanto, o código acima pode acabar alterando o diretório de trabalho atual. O cd .
está lá para reduzir a probabilidade dele em algumas camadas.