
Estoy intentando buscar recursivamente en todas las subcarpetas archivos que tengan puntos dentro de su nombre de archivo y eliminar los puntos (excepto el último).
El comando de cambio de nombre funciona por sí solo, el comando de búsqueda también, pero no funcionan juntos:
find ./ -type f -execdir rename -n 's/\.(?=[^.]*\.)//g' *.txt \;
Respuesta1
Un globo en un -execdir
comando no funcionará, mejor find
busque los archivos que desea y ejecútelos rename
solo en ellos:
find ./ -type f -name "*.txt" -exec rename -n 's/\.(?=[^.]*\.)//g' {} \;
Resulta que tu rename
expresión no funciona con rutas, prueba esto en su lugar:
find ./ -type f -name "*.txt" -exec rename -n 's:\.(?=[^./]*\.)::g' {} \;