Я пытаюсь найти все файлы и папки в определенной папке и всех подпапках и заменить все специальные символы. Все пробелы следует заменить точками, а все остальное просто удалить. Я пробовал несколько разных способов, но когда я использую «mv», кажется, что он не сохраняет структуру каталогов, а когда я использую «переименовать» вместе с «найти», он не хочет идти рекурсивно.
Самое близкое, что я получил, это:
for f in **/; do mv "$f" `echo $f | tr " " . | tr -dc '[:alnum:].'`; done
Но я думаю, что цикл где-то прерывается, так как он складывает имена файлов вместе и помещает результат в родительский каталог.