Как скопировать файлы с запрещенными символами?

Добрый день.

Есть компьютер с Ubuntu, на котором больше 20 гигабайт файлов. Проблема в том, что их нужно скопировать на компьютер под управлением Windows, но в именах файлах есть запрещенные символы — > < |? * / \: "

Есть ли у кого готовый скрипт, который пройдется по всем файлам и приведет их к годному для Windows виду?
  • Вопрос задан
  • 3980 просмотров
Пригласить эксперта
Ответы на вопрос 2
jov
@jov
for f in $files; do newname=$(echo "$f" | tr '\\><|?*/:"' ' ');mv "$f" "$newname";done;
Ответ написан
jov
@jov
sledopit, давайте по порядку. Насчёт первого символа в название файла из категории «запрещенных» согласен, не подумал об этом. Лечится простым скриптом на sed'е
jov@jov-notebook:~/h$ echo '<<<<s><|?*/\:"e' | tr '\\><|?*/:"' ' ' | sed "s/^ *//"
ну или, как предложил danfe заменять «запрещённые» на "_".
$() после newname= нужно взять в двойные кавычки
Зачем?
Ну и про переменную $files тоже стоило написать. Иначе цикл так и не запустится.
Очевидно, что не запустится. Каким образом автор вопроса будет выбирать файлы для переименования, мне не ведомо. Как вариант, воспользоваться скриптом который предоставил danfe и работать с поддиректориями текущего каталога, а можно и нет, всё на усмотрение автора.
Я всего лишь предложил упрощенную модель.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы