Você precisa criar um pequeno arquivo de script para fazer sua renomeação / movimentação: chamá-lo de rnmv
, digamos, e colocar o seguinte comando nele:
f="${1#./}"; echo mv "$f" "${f%%/*}.${f##*.}"
Não se esqueça de chmod +x rnmv
. Em seguida, vá para o diretório raiz e chame rnmv
de um comando find
:
cd {wherever temp2 root is}
find . -name "temp2.txt" -exec rnmv "{}" \;
Quando você estiver feliz que os comandos mv
corretos estão sendo criados, remova o echo
de rnmv
e sua renomeação / movimentação será feita.
Uma tarefa final é remover os subdiretórios vazios:
find . -name temp2 -exec rmdir "{}" \;
Isso é seguro, pois rmdir
não removerá um diretório com arquivos nele. Dependendo da ordem de encontrar os diretórios, talvez seja necessário repetir o comando para estruturas como ABC / temp2 / temp2, já que o temp2 não estará vazio até que o segundo seja excluído.
Observe que, se o ABC, digamos, tiver mais de um arquivo temp2.txt em seus subdiretórios, cada comando mv
sobrescreverá o ABC.txt anterior e somente o último encontrado será deixado depois.