В этом проекте вам предлагается написать аналог mmv — утилиты для массового перемещения или переименовывания файлов по шаблону.
От вас требуется уделить наибольшее внимание правильному дизайну, чистому коду, тестированию и документации всей системы.
Enjoy 🙂
На вход программе подается два аргумента: шаблон для выбора файлов и шаблон целевого пути:
$ ./mmv 'path/to/some_*_filename.*' 'path2/to/changed_#1_filename.#2'
*
внутри имени, обозначающего подстроку любой длины (в том числе и пустую).Замечание: символ *
может быть только в имени файла
#1
, #2
и так далее. Эти маркеры указывают, какие фрагменты, обозначенные звездочками в исходном шаблоне, следует вставить в новое имя файла.Утилита должна вывести на экран список изначальных путей файлов и их путей после перемещения:
$ ./mmv 'path/to/some_*_filename.*' 'path2/to/changed_#1_filename.#2'
path/to/some_A_filename.bin -> path2/to/changed_A_filename.bin
path/to/some_A_filename.jpg -> path2/to/changed_A_filename.jpg
path/to/some_B_filename.bin -> path2/to/changed_B_filename.bin
path/to/some_B_filename.jpg -> path2/to/changed_B_filename.jpg
И переместить файлы.
-h
--help
— показать help справку
-f
--force
— затирает существующие файлы, если они существуют