Как заменить расширение/суффикс файлов рекурсивно (пакетная переименовка файлов)

find ~/Notes -type f -iname '*.md' -print0 | xargs -0 rename --no-overwrite .md .txt {}


Эта команда выполняет пакетную переименовку файлов с расширением .md на .txt в указанной директории и ее поддиректориях.

Описание команды:
find ~/Notes — поиск файлов в директории ~/Notes и ее поддиректориях
-type f — ограничение поиска только на файлы
-iname '*.md' — поиск файлов с расширением .md (без учета регистра)
-print0 — вывод найденных файлов, разделенных символом NULL
| — перенаправление вывода команды find на вход команды xargs
xargs -0 — использование символа NULL в качестве разделителя аргументов
rename --no-overwrite .md .txt {} — переименование файлов, заменяя расширение .md на .txt. Флаг --no-overwrite предотвращает перезапись существующих файлов. {} является плейсхолдером для передаваемых файлов.

Альтернативой может быть использование других команд для пакетной переименовки файлов, таких как mmv, rename, sed или использование скрипта на языке программирования.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *