Когда сестре несколько лет назад покупали ноутбук, там была бубунта. На ней в целом всё работало, так она на ней и жила.

Но потом ей надоело. Работало всё "в целом", а не полностью. Стали нужны программы, которые не работали. И я снёс бубунту и поставил семёрку.

Но надо было спасти данные. Это не вопрос. Подключаю внешний диск, всё копирую. Исходная файловая система -- ext3 или ext4, целевая -- NTFS.

Начинаю копировать обратно -- часть файлов не найдены. Почему? Потому что это линукс, детка. Среди файлов сестры я обнаружил интересные, такие как:

Untitled 0\.odt
Снимок экрана 12:15:23.png
Курсовая работа: версия 1.odt

Всё это содержало запрещённые символы. Но они запрещённые только в винде. Под линуксом такие файлы спокойно открываются. И создаются на томах NTFS. Что же делать? Под виндой я их даже удалить не могу.

В общем, надо быть осторожным, давая имена файлам под линуксом, если в будущем их надо будет использовать в винде.

***

Какое-то время бэкап лежал мёртвым грузом, а потом я скачал live-usb линукс и решил заняться этим вопросом вплотную. Одиночные файлы я переименовал вручную, но скриншотов было довольно много.

Я обратился к опытным знакомым, и они мне подсказали однострочник, который переименует всё файлы, заменив двоеточие на дефис. Вот он:

for f in *;do mv "$f" "`echo $f|tr ':' '-'`";done