cd /var/foo/bar/baz
for src in *; do
dest="${src}"
suffix=0
while [[ -e ../"${dest}" ]]; do
dest="${src}.${suffix}"
suffix=$((suffix+1))
done
mv -n "$src" ../"$dest"
done
cd ..
rmdir baz
Uma solução bastante simples. Prepare-se para mover um arquivo do diretório atual para o diretório pai, mas se já houver algo com esse nome, adicione um sufixo com um número. Mas certifique-se de não usar um número que também já exista por algum motivo.
A construção [[ -e file ]]
retornará true se houver algo chamado file
, seja um diretório, um soquete, um arquivo regular ou qualquer outro que possa existir.