Eu ficaria com dois comandos separados:
mv "$oldname" dienow
rm -rf dienow
Dessa forma, se você acidentalmente se lembrar de uma linha do seu histórico, não corre o risco de causar grandes danos executando um único comando. O comando mv
não exclui "$oldname"
, mesmo que seja a nova versão, e o comando rm
exclui apenas algo que você já declarou como excluído.
Se você se sentir com sorte e insistir em um único comando, faça uma função:
mv_then_rm () {
mv -- "$1" "$1.TO_BE_DELETED" && rm -rf -- "$1.TO_BE_DELETED" &
}
Aqui está uma versão com vários parâmetros que garante que o diretório "a ser excluído" ainda não existe.
mv_then_rm () {
local d tmpdir tmpdirs
tmpdirs=()
for d; do
tmpdir=$(mktemp -- "$(dirname -- "$d")/.deleting.XXXXXXXXXX")
tmpdirs+=$tmpdir
mv -- "$d" "$tmpdir"
done
rm -rf -- "$tmpdirs" &
}