bash удаление символов из имен файлов и каталогов
Здравствуйте, уважаемые форумчане! Помогите с проблемой: наша организация переходит на Astra linux, также сетевая «файлопомойка» NTFS мигрирует на ext4 с сохранением структуры каталогов и их содержимого, однако при миграции возникли проблемы:
1)так как пользователи работают с автоматизированными выгрузками из базы, то часто имена выгрузки бывают длинными 250 символов, что поддерживает NTFS но не поддерживает ext4. Кроме того в именах файлов пользователи часто используют нежелательные знаки (. , : ; ! ? * @ # " ^ и др.). При миграции не копируются множество файлов, а файлов очень много;
2)в структуре каталогов присутствуют множество разветвленных вложений, я максимально насчитал 11, но может быть и больше, также с очень длинными именами, в которых также присутствуют нежелательные символы. Соответственно каталоги также не копируются.
Собственно по проблеме 1 я накидал bash-скрипт, который отрабатывает по каталогу и его вложениям, где располагается скрипт:
( читать дальше... )
Скрипт сначала удаляет нежелательные символы из имен файлов, а затем сокращает имена файлов до 100 символов и если такое имя файла уже существует, то добавляет к имени цифру. Скрипт работает, но выдает ошибку о недопустимом символе 99, и не удаляет символ #. Помогите пожалуйста скорректировать код что бы не выходила ошибка и удалялись все символы. По второй проблеме я накидал скрипт, который также удаляет нежелательные символы из имен каталогов:
( читать дальше... )