Я пытаюсь искать рекурсивно во всех подпапках для файлов с, имеют точки в их имени файла и удаляют точки (кроме последней)
Переименовать команда работает самостоятельно, команда находки также, но они не сотрудничают:
find ./ -type f -execdir rename -n 's/\.(?=[^.]*\.)//g' *.txt \;
Шарик в -execdir
команда не будет работать, лучше позволить find
, ищут файлы, которые Вы хотите и выполняете rename
только на них:
find ./ -type f -name "*.txt" -exec rename -n 's/\.(?=[^.]*\.)//g' {} \;
Оказывается Вашим rename
, выражение не работает с путями, пробует это вместо этого:
find ./ -type f -name "*.txt" -exec rename -n 's:\.(?=[^./]*\.)::g' {} \;