Хотите посмеяться?
Windows пакует штатными средствами даже не в CP-1251, она пихает имена в DOS кодировке CP866.
Причём установленный из репозитория 7z, ломает кодировку окончательно и преобразовать имена файлов в читаемые уже не получается, для проведения эксперимента пришлось скачать свежую версию 7z с сайта.
Штатный
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
Скаченный
7-Zip (z) 23.01 (x64) : Copyright (c) 1999-2023 Igor Pavlov : 2023-06-20
Вывод после распаковки штатным 7z
ls -lh
итого 12K
-rw-rw-r-- 1 sergey sergey 10 апр 17 09:35 ''$'\302\222''¥áâ1.txt'
-rw-rw-r-- 1 sergey sergey 10 апр 17 09:35 ''$'\302\222''¥áâ2.txt'
-rwxrw-r-- 1 sergey sergey 230 апр 17 09:35 Тест1.zip
Вывод после распаковки новым 7z
ls -lh
итого 12K
-rw-rw-r-- 1 sergey sergey 10 апр 17 09:35 ''$'\222\245\341\342''1.txt'
-rw-rw-r-- 1 sergey sergey 10 апр 17 09:35 ''$'\222\245\341\342''2.txt'
-rwxrw-r-- 1 sergey sergey 230 апр 17 09:35 Тест1.zip
ls -lh
итого 12K
-rw-rw-r-- 1 sergey sergey 10 апр 17 09:35 ''$'\222\245\341\342''1.txt'
-rw-rw-r-- 1 sergey sergey 10 апр 17 09:35 ''$'\222\245\341\342''2.txt'
-rwxrw-r-- 1 sergey sergey 230 апр 17 09:35 Тест1.zip
convmv --qfrom -f cp866 -t utf8 ./*.txt
Starting a dry run without changes...
mv "./????1.txt" "./Тест1.txt"
mv "./????2.txt" "./Тест2.txt"
No changes to your files done. Would have converted 2 files in 0 seconds.
Use --notest to finally rename the files.
convmv --notest --qfrom -f cp866 -t utf8 ./*.txt
mv "./????1.txt" "./Тест1.txt"
mv "./????2.txt" "./Тест2.txt"
Ready! I converted 2 files in 0 seconds.
ls -lh
итого 12K
-rw-rw-r-- 1 sergey sergey 10 апр 17 09:35 Тест1.txt
-rwxrw-r-- 1 sergey sergey 230 апр 17 09:35 Тест1.zip
-rw-rw-r-- 1 sergey sergey 10 апр 17 09:35 Тест2.txt