Estou tentando pesquisar recursivamente em todas as subpastas por arquivos com pontos dentro do nome do arquivo e remover os pontos (exceto o último)
O comando rename funciona sozinho, o comando find também, mas eles não estão funcionando juntos:
find ./ -type f -execdir rename -n 's/\.(?=[^.]*\.)//g' *.txt \;
Responder1
Um glob em um -execdir
comando não funcionará, é melhor find
procurar os arquivos desejados e executar rename
apenas neles:
find ./ -type f -name "*.txt" -exec rename -n 's/\.(?=[^.]*\.)//g' {} \;
Acontece que sua rename
expressão não funciona com caminhos, tente isto:
find ./ -type f -name "*.txt" -exec rename -n 's:\.(?=[^./]*\.)::g' {} \;