LINUX.ORG.RU

Странный знак вместо точки конце названия папки

 


0

1

Добрый день! Смонтирована сетевая шара к системе Mint 21.2 При именовании файла или папку заметил особенность. Если в конце названия поставить точку, то машины с Windows вместо точки видят другой знак (U+f029)- точка посередине или вопросик в квадрате Если точку ставить в середине названия, она распознается нормально. На других системах с mint все работает нормально. Только на одной машине. Куда копать?


то машины с Windows вместо точки видят другой знак

Куда копать?

В сторону винфака, вестимо. Это явно какие-то «особенности» самой Windows.

Возможно, оно как-то связано с рудиментом досовских времён в виде разделения имени файла на собственно имя и расширение, и после точки оно видит «нулевое расширение», но при этом не без точки, а с точкой, и что-то там своё непонятное там предполагает. Но это чисто пальцем в небо, в винде я не разбираюсь.

Немного не по теме, но всё же… Кстати, зачем ставить точку в конце названия файла? Это довольно странно, я бы, пожалуй, немного удивился, увидев такое… Это как точка в конце заголовка (темы, названия главы и т.д.) — как бельмо на глазу.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 3)

Потому что винда не воспринимает точку в конце имени файла и сходит с ума. В в винде точка в конце файла по умолчанию считается присутствующей в любом файле без других точек.

В линуксе-то расширения как отдельного объекта нет, это просто часть имени, а в DOS например под него отдельные три байта выделялись и точка была только в интерфейсе, но не в файловой системе.

Xenius ★★★★★
()

� - это стадартный символ на который заменяются неправильные последовательности при декодировании UTF-8. Можешь почитать про коллизии в UTF-8, можешь просто забить… Чем ты переименовываешь файл? Может это баг клиента?

rtxtxtrx
()
Ответ на: комментарий от rtxtxtrx

Не, не заменяет. Просто в файловой системе DOS имя файла было из 11 байт идущих подряд, из них последние три отображались как расширение, а первые 8 как имя, точки как таковой в байтовом представлении не было, а в паттернах вроде *.* точка была спецсимволом, разделителем имени и «расширения», например *. - любой файл с пустым расширение.

Винда унаследовала эту фичу и потому виндовые программы считают что в имени любого файла или каталога без расширения в конце стоит точка, хоть она и не отображается. А когда точка есть на самом деле винде приходится как-то выкручиваться.

Xenius ★★★★★
()