zsh, zmv массовое переименование подкаталогов ничего не происходит на больших объемах каталогов

Я установил

autoload -U zmv
alias mmv='noglob zmv -W'

Когда на примере данных (~20 папок с подпапками) я запускаю

mmv images/**/advert images/**/notice

это просто работает, как и ожидалось. Но если я выполню ту же команду для реальных данных (сотни тысяч папок), ничего не произойдет. Я бегал mmv -n чтобы получить некоторые сообщения, но без результата. Даже одно имя каталога было изменено, поэтому после того, как я только что закончил процесс.

Является zmv кеш списка папок в качестве первого шага и чем его заменить имена? Я ожидал что zmv начнёт менять имена сразу dir by dir.

Должен ли я запустить mvv и просто подождать несколько часов?

1 ответ

Решение

zmv вычисляет все переименования до того, как он начинает действовать, поэтому наблюдаемое вами поведение является нормальным.

Одна из причин этого заключается в том, что произойдет ошибка, если два файла будут переименованы в одно и то же имя. Он также выдает ошибки, если файл должен быть переименован в уже существующее имя, и пытается найти ошибки на ранних этапах, а не прерывать их посередине с помощью трудно определяемого набора файлов, который уже переименован.

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