LINUX.ORG.RU
решено ФорумTalks

[лень][битое имя файла]Как привести имя файла в нормальный вид

 


0

2

Сейчас разгребал локальную помойку на ext4. Нашел несколько десятков каталогов и файлов с названиями вида ???????????????????, не удалаются, не перемещаются, не открываются. Остальные файлы с русскоязычными названиями отображаются корректно, проблем с кодировками не встречал уже очень давно.

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

Ответ на: комментарий от unikoid

хм, спасибо, видимо копать сюда. Попробовал из cp1251 в utf8 - предлагает аналогичное имя. Надо еще пошаманить

//Каюсь же

mikhalich ★★
() автор топика
Ответ на: комментарий от mikhalich

один каталог вытащил, но есть проблемы с названиями с пробелом.

ls -1 | head -1 | xargs -d «\0» -t convmv -f cp1251 -t utf-8 -r --notest

mikhalich ★★
() автор топика
Ответ на: комментарий от AITap

Блин, как на этом сайте в карму стопицот добавить???

Спасибо огромное, дай Небо тебе здоровья!

mikhalich ★★
() автор топика
Ответ на: комментарий от mikhalich

>ls -1 | head -1 | xargs -d «\0» -t convmv -f cp1251 -t utf-8 -r --notest

Во-первых, ls при выводе в пайп включает -1 автоматически. Во вторых, есть клёвый паттерн для файлов с пробелами:

ls | head -1 | while read filename ; do
  convmv -f cp1251 -t utf-8 -r --notest $filename
  #можно ещё что-то делать
done
legolegs ★★★★★
()

попробуй питоном, давая юникодовые параметры (пути) функциям работы с файлами.

olegsov
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.