J'essaie de rechercher récursivement dans tous les sous-dossiers des fichiers avec des points dans leur nom de fichier et de supprimer les points (sauf le dernier)
La commande rename fonctionne seule, la commande find aussi, mais elles ne fonctionnent pas ensemble:
find ./ -type f -execdir rename -n 's/\.(?=[^.]*\.)//g' *.txt \;
Un glob dans un -execdir
la commande ne fonctionnera pas, il vaut mieux laisser find
rechercher les fichiers que vous voulez et exécuter rename
uniquement sur eux:
find ./ -type f -name "*.txt" -exec rename -n 's/\.(?=[^.]*\.)//g' {} \;
Il s'avère que votre expression rename
ne fonctionne pas avec les chemins, essayez plutôt ceci:
find ./ -type f -name "*.txt" -exec rename -n 's:\.(?=[^./]*\.)::g' {} \;