Como são tratados os caracteres não permitidos do Windows® em um pendrive formatado em fat32?

Como são tratados os caracteres não permitidos do Windows® em um pendrive formatado em fat32?

Eu não possuo um Mac, então não posso falar sobre coisas como ?ou :em nomes de arquivos…

Estou especialmente interessado no separador de caminho Dos/Windows®: \. Eu sei que no Linux é um caractere legal que pode ser usado dentro de nomes de arquivos fat32(O Windows® reclamará que o volume está corrompido).
O mesmo é verdade para osx? Ou a execução mkdir ..\\direntserá criada direntno diretório pai(ainda no caso do fat32 pois já conheço o comportamento do hfs) ?

Claro que estou falando do caso em que o volume é montado através do Finder.
Dependendo da resposta, pode confirmar a existência de uma vulnerabilidade em um software popular de gerenciamento de código-fonte…

Responder1

Esta é uma questão interessante, e eu mesmo tive que descobrir no meu MacBook com sistema operacional "OS X El Capitan". Você deve diferenciar entre caracteres não permitidos no localizador/aplicativos usando o localizador (por exemplo, editor de texto) e a linha de comando.

Em primeiro lugar, a barra invertida "\" é como qualquer caractere normal tanto no Finder quanto na linha de comando. Portanto, você pode criar um arquivo ou diretório como A\B. O mesmo se aplica ao ponto de interrogação.

Quando se trata de dois pontos ":", fica complicado. Quando você cria um arquivo chamado A:B na linha de comando, ele é criado e exibido corretamente na linha de comando, mas é exibido como A/B no localizador. E se você tentar criar um arquivo contendo dois pontos no Finder, como C:D, você receberá o erro "O nome C:D não pode ser usado. Tente usar um nome com menos caracteres ou sem sinais de pontuação. "

Criar um arquivo ou diretório que comece com o ponto "." pode ser feito na linha de comando, sem problemas. Mas como esses tipos de arquivos e diretórios são usados ​​para arquivos e diretórios ocultos, você não pode criá-los no Finder. Em vez disso, você receberá uma janela de erro informando "Você não pode usar um nome que comece com um ponto ".", porque esses nomes estão reservados para o sistema. Escolha outro nome." Se você executar o comando

mkdir ..\\dirent

na linha de comando, isso cria o diretório oculto com o nome

..\\dirent 

no diretório atual, portanto, não é um diretório chamado direntno diretório pai.

A propósito: testei isso com um pendrive formatado em fat32, mas mesmo se eu usasse um disco rígido externo formatado em NTFS ou a unidade SSD interna formatada em HFS +, ele se comporta da mesma forma.

Se eu olhar todos esses arquivos e diretórios (que escrevi no meu MacBook para o pendrive) no Windows Explorer (com Windows 10), a barra invertida, os dois pontos e o ponto de interrogação serão exibidos de maneira diferente do MacBook, cada um dos eles com o mesmo caractere especial que não consigo criar no teclado nem copiar e colar corretamente - colar nesta janela aqui cria "" que não se parece com o caracter exibido no Windows Explorer. No Windows Explorer, ele se parece com o ponto ".", mas esse ponto está localizado um pouco acima do ponto normal, verticalmente no meio.

Espero poder ajudá-lo de alguma forma.

informação relacionada