Следование за этим вопросом - Переименовывает файлы и папки во всех sub каталогах для удаления символа
Я хотел бы удалить все обычные символы, которые могут вызвать проблемы такой как / \: *? "<> | и от имен файлов и от папок на жестком диске с помощью командной строки.
Основанное на Perl rename
команда принимает образцы регулярного выражения, таким образом, можно использовать выражение набора символов [\:*?"<>|]
(обратите внимание, что Вы не можете использовать ИЛИ заменить /
в имени файла Unix, так как это - разделительный символ пути).
Напр. данный
$ ls fi*
file file1 file2 file.log 'fi:le*na<me>' file.txt
затем
$ rename -n 's/[\:*?"<>|]//g' *
rename(fi:le*na<me>, filename)