Я собирался создать резервную копию из источника, чтобы вручную проверить правильность данных. Некоторые символы, такие как ääö, не отображаются правильно в исходных данных, но, поскольку клиенты (через samba) правильно их интерпретируют, беспокоиться не о чем. Данные, восстановленные из резервной копии, правильно отображают символы, что приводит к тому, что diff не рассматривает их как одни и те же файлы (с diff, а скорее совершенно разные файлы).
MD5 суммы, тот же файл, но другое имя.
# md5sum /original/iStock_000003637083Large-barn*
e37c34968dd145a0e25692e1cb7fbdb1 /original/iStock_000003637083Large-barn p? strand.jpg
# md5sum /frombackup/iStock_000003637083Large-barn*
e37c34968dd145a0e25692e1cb7fbdb1 /frombackup/iStock_000003637083Large-barn på strand.jpg
Параметры монтирования и файловые системы
/dev/sdb1 on /original type ext4 (rw,noatime,errors=remount-ro)
/dev/sdc1 on /frombackup type ext4 (rw)
место действия
LANG=sv_SE.UTF-8
LANGUAGE=
LC_CTYPE="sv_SE.UTF-8"
LC_NUMERIC="sv_SE.UTF-8"
LC_TIME="sv_SE.UTF-8"
LC_COLLATE="sv_SE.UTF-8"
LC_MONETARY="sv_SE.UTF-8"
LC_MESSAGES="sv_SE.UTF-8"
LC_PAPER="sv_SE.UTF-8"
LC_NAME="sv_SE.UTF-8"
LC_ADDRESS="sv_SE.UTF-8"
LC_TELEPHONE="sv_SE.UTF-8"
LC_MEASUREMENT="sv_SE.UTF-8"
LC_IDENTIFICATION="sv_SE.UTF-8"
LC_ALL=
od -c
# ls "/original/iStock_000003637083Large-barn p� strand.jpg" | od -c
0000000 / v a r / w w w / m e d i a b a
0000020 n k e n _ i m a g e s / k u n d
0000040 i d 8 0 / _ B a r n / i S t o c
0000060 k _ 0 0 0 0 0 3 6 3 7 0 8 3 L a
0000100 r g e - b a r n p 345 s t r a
0000120 n d . j p g \n
0000127
# ls "/frombackup/iStock_000003637083Large-barn på strand.jpg" | od -c
0000000 / d a t a / v a r / w w w / m e
0000020 d i a b a n k e n _ i m a g e s
0000040 / k u n d i d 8 0 / _ B a r n /
0000060 i S t o c k _ 0 0 0 0 0 3 6 3 7
0000100 0 8 3 L a r g e - b a r n p 303
0000120 245 s t r a n d . j p g \n
0000135
linux
diff
character-encoding
user135361
источник
источник
Ответы:
Файловые системы Unix, как правило, не зависят от локали в том смысле, что имена файлов состоят из байтов, и дело приложения решать, что означают эти байты, если они выходят за пределы диапазона ASCII. Соглашение о Unix сегодня заключается в кодировании имен файлов и всего остального в UTF-8, за исключением некоторых устаревших сред (в основном азиатских). Файловые системы Windows, с другой стороны, обычно имеют кодировку, указанную в свойствах файловой системы.
Если вам нужно работать с именами файлов в другой кодировке, создайте перевод этой файловой системы с помощью convmvfs . Смотрите работу с именами файлов в другой кодировке через ssh
Похоже, что ваша оригинальная система имеет имена файлов, закодированные в латинице-1. Ваша текущая система использует UTF-8, а однобайтовая последовательность, представленная
å
в latin-1 (\345
), является недопустимой последовательностью в UTF-8, котораяls
печатается как?
. Ваш процесс резервного копирования как-то привел к именам файлов, закодированным в UTF-8. Samba переводит имена файлов в зависимости от конфигурации.Чтобы получить доступ к исходным файлам с вашей собственной кодировкой, создайте перекодированное представление:
(Вам могут потребоваться другие варианты в зависимости от того, какие разрешения и права собственности вы хотите получить.)
источник
В Unix / Linux имя файла может содержать любые символы, кроме
'\0'
(ASCII NUL) и'/'
(косая черта, разделитель каталогов). В частности, если вы хотите дать своим файлам имена в кандзи в какой-то странной кодировке, просто продолжайте. Вы, вероятно, увидите только тарабарщинуls(1)
или другие команды, но ничего плохого не произойдет. Это то, что вы видите,på
оно отображается какp?
,'?'
здесь есть общий ярлык для «неизвестного / не ASCII символа».Попробуйте запустить оба имени файла
od -c
, то есть сделать что-то вроде:(глобус состоит в том, чтобы отфильтровать несоответствующие имена, приспособиться к вкусу).
Только если результат будет другим, я начну беспокоиться. Но учитывая ваши настройки Сведиш, я подозреваю, что правильное имя
på
. Возможно, другое - это название на латинице 4, оставшееся от предыдущей настройки?источник