Исправить неправильную кодировку имен файлов
Странно , что кодировки какой-то музыки, которую я получил от друга с ОС Windows 7, отображаются с неправильной кодировкой в nautlius. Я уже попробовал это с
convmv --notest -r -f windows-1255 -t utf-8 *
но это не исправило это. Это скорее другая неправильная кодировка. Я пробовал также с latin1 и latin3. Так как я не знаю, какова была оригинальная кодировка, и я не могу это выяснить, я продолжаю задаваться вопросом, каковы мои варианты.
Спасибо за любой совет.
2 ответа
Чтобы попробовать все кодировки, выберите один из ваших файлов, например, mychosenfile.mp3m, а затем переберите все кодировки. Если повезет, вы найдете тот, который, кажется, будет в порядке. Это просто перечисляет возможные новые имена:
file=mychosenfile.mp3
for enc in $(convmv --list)
do echo $enc: $(convmv --parsable -f $enc -t utf-8 "$file")
done
Кроме того, вы можете переименовать файлы в дорожку песни и название, взятые из тега id3, если они есть. Например, (это просто echo - команда mv):
find mydir -name '*.mp3' |
while read file
do if newname="$(id3info "$file" |
awk -F': ' '
/^=== TRCK/{ track = $2 }
/^=== TIT2/{ title=$2;gsub(" ","_",title) }
END { if(title!="")printf "%02d_%s.mp3\n",track,title }
')"
then dir=$(dirname "$file")
echo mv "$file" "$dir/$newname"
fi
done
Чтобы удалить специальные символы из всех имен файлов, используйте detox
:
detox -r -v -s utf8 /path/to/files/
Вы также можете пройти -n
увидеть, что это будет сделано, и убедиться, что это звучит разумно.
Чтобы переименовать все файлы в соответствии с их музыкальными тегами, используйте lltag
:
lltag -R --mp3v2 --mp3read=21 --rename '/new/path/%a/%A/%n %t' /path/to/files
Вы должны рассмотреть возможность прохождения --dry-run
сначала вызвать, чтобы увидеть, что будет сделано; проходить --yes
если вы устали отвечать на вопросы (может повлиять на качество новых имен в случае отсутствия тегов и т. п.).
Более подробная информация в man detox
а также man lltag
,