Привет! Наваял небольшую программу для собственных нужд, но вдруг и кому нибудь будет полезно, зацените!
В работе системного администратора часто бывают ситуации когда необходимо переименовать файл по его определенным критериям, например использовать часть его имени, дату изменения, хэш и т.п., для этих целей и создана эта программа. Принцип ее работы очень простой: имя файла передается хелперу (вспомогательной программе) которая в stdout пишет текст, затем smv разбивает его на слова которые используются в дальнейшем как символы подстановки в шаблоне имени результирующего файла.
Примеры :
Перемещение файла в каталог формата yyyy/mm/dd в зависимости от времени изменения файла:
smv -ph "stat -c %y" filename %1,1,4%/%1,6,2%/%1,9,2%/%0
переименовать все файлы с расширением .txt в md5 хэш:
smv -h md5sum "*.txt" %1%$
Скрипт перемещения *.txt файлов по каталогам год/месяц изменения файла:
#!/bin/sh
wd=/home/samba/all-msg/arc
/usr/local/bin/smv -ph 'stat -c %y' $wd/'*.txt' $wd/%1,1,4%/%1,6,2%/%0
Более полную информацию можно посмотреть на https://github.com/wellcomer/smv , там есть README, где всё более детально расписано, если будет интересно.