Como @roaima mencionou, você não precisa primeiro remover os arquivos; ao mover os arquivos, você sobrescreverá automaticamente os arquivos antigos.
Uma abordagem para isso é usar um loop for no bash:
for f in *.jpg.txt; do mv $f ${f/%.jpg.txt/.txt}; done
Deixe-me explicar:
-
for f in *.jpg.txt; do <command>; done
: execute o comando em cada arquivo de*.jpg.txt
. Enquanto a execução do nome do arquivo é armazenada na variávelf
. -
${f/%.jpg.txt/.txt}
: O valor de$f
, mas a última ocorrência de.jpg.txt
foi substituída por.txt
. Consulte o link para obter mais exemplos disso. -
mv $f ${f/%.jpg.txt/.txt}
: faça a renomeação do arquivo antigo para o novo nome de arquivo sem o.jpg
.
Antes de executar este código, você pode assegurar-se de que será correto executar
for f in *.jpg.txt; do echo $f ${f/%.jpg.txt/.txt}; done
Isso imprimirá os pares de arquivos que serão movidos.