Попытка найти определенные файлы рекурсивно и изменить имя файла

Я пытаюсь искать рекурсивно во всех подпапках для файлов с, имеют точки в их имени файла и удаляют точки (кроме последней)

Переименовать команда работает самостоятельно, команда находки также, но они не сотрудничают:

find ./ -type f -execdir rename -n 's/\.(?=[^.]*\.)//g' *.txt \;
2
задан 13 February 2018 в 13:25

1 ответ

Шарик в -execdir команда не будет работать, лучше позволить find, ищут файлы, которые Вы хотите и выполняете rename только на них:

find ./ -type f -name "*.txt" -exec rename -n 's/\.(?=[^.]*\.)//g' {} \;

Оказывается Вашим rename, выражение не работает с путями, пробует это вместо этого:

find ./ -type f -name "*.txt" -exec rename -n 's:\.(?=[^./]*\.)::g' {} \;
1
ответ дан 2 December 2019 в 04:45

Другие вопросы по тегам:

Похожие вопросы: