Extensões de arquivo que diferenciam maiúsculas de minúsculas no Windows e Linux

10

No linux, você pode ter os arquivos example.JPGe example.jpgno mesmo diretório.

No Windows, você possui extensões que diferenciam maiúsculas de minúsculas, mas não pode colocar esses dois arquivos no mesmo diretório. Por que não?

wvdz
fonte
11
possível duplicata de Todas as versões do Windows fazem distinção entre maiúsculas e minúsculas? (provavelmente há uma pergunta melhor do que isso)
Cole Johnson
O FAT manteve a extensão separada do nome base, e o SO adicionou o .item para fins de entrada e exibição. (Acredito que seja seguro dizer que praticamente ninguém usa o FAT para nada além da interoperabilidade atualmente.) Não sei exatamente como o NTFS faz isso, mas suponho que seja semelhante a todos os principais sistemas de arquivos Linux, que simplesmente tratam o nome do arquivo como uma sequência de caracteres. Não há nada de especial na extensão do arquivo: é simplesmente por convenção e é tratada pelo sistema de arquivos como parte do nome do arquivo.
a CVn
Procure ObCaseInsensitivee superuser.com/q/266110/59271
user541686
@Grawity não é apenas um caso de tomayto, tomahto?
Wdc # 24/15

Respostas:

32

No Windows, você possui extensões que diferenciam maiúsculas de minúsculas, mas não pode colocar esses dois arquivos no mesmo diretório. Por que não?

Se uma unidade estiver formatada como NTFS, você poderá ter ambos example.JPGe example.jpg.

No entanto, se você tentar abrir um desses arquivos em um aplicativo Win32 , como o Bloco de Notas, você só terá acesso a um dos arquivos , independentemente do caso do nome do arquivo digitado na caixa de diálogo Abrir Arquivo.


Os nomes de arquivos diferenciam maiúsculas de minúsculas em volumes NTFS

Como parte dos requisitos de conformidade com o POSIX, o Windows NT File System (NTFS) fornece uma convenção de nomenclatura de arquivos e diretórios com distinção entre maiúsculas e minúsculas. Mesmo que o NTFS e o subsistema POSIX lidem bem com distinção entre maiúsculas e minúsculas, os aplicativos baseados em Windows, MS-DOS, OS / 2 e Win32 de 16 bits não .

No NTFS, você pode criar nomes de arquivos exclusivos, armazenados no mesmo diretório, que diferem apenas no caso. Por exemplo, os seguintes nomes de arquivos podem coexistir em um diretório em um volume NTFS:

CASE.TXT
case.txt
case.TXT

No entanto, se você tentar abrir um desses arquivos em um aplicativo Win32 , como o Bloco de Notas, você só terá acesso a um dos arquivos , independentemente do caso do nome do arquivo digitado na caixa de diálogo Abrir Arquivo.

...

O NTFS suporta dois modos de operação ligeiramente diferentes que podem ser selecionados pelo subsistema do aplicativo que interage com o NTFS. O primeiro é totalmente sensível a maiúsculas e minúsculas e exige que os nomes de arquivos fornecidos pelo aplicativo correspondam aos nomes armazenados no disco, incluindo maiúsculas e minúsculas, se o arquivo no disco for selecionado. O segundo modo de operação preserva maiúsculas e minúsculas, mas não diferencia maiúsculas de minúsculas. Isso significa que os aplicativos podem selecionar arquivos no disco, mesmo que o nome fornecido seja diferente do nome armazenado no disco. Observe que os dois modos preservam o caso usado para criar os arquivos. A diferença de comportamento observada aqui se aplica somente quando um aplicativo precisa localizar um arquivo existente. O POSIX aproveita o modo sensível a maiúsculas e minúsculas, enquanto o MS-DOS, WOW eOs subsistemas Win32 usam o modo que não diferencia maiúsculas de minúsculas .

Os nomes de arquivos de origem diferenciam maiúsculas de minúsculas nos volumes NTFS :


Na prática, não consegui fazer isso

Para obter dois arquivos no mesmo diretório que diferem apenas por caso, é necessário ativar o subsistema Posix .

O POSIX aproveita o modo sensível a maiúsculas e minúsculas, enquanto os subsistemas MS-DOS, WOW e Win32 usam o modo que não diferencia maiúsculas de minúsculas.

Para ativar o Posix, consulte:

DavidPostill
fonte
Isso é novidade para mim. Eu tive que diminuir esse voto temporariamente porque, embora você tenha citações, na prática, não fui capaz de fazer isso . Você se importaria de fornecer instruções sobre como isso pode ser realizado na prática?
MDMoore313
7
@ BigHomie Esse é o shell do Windows, que está impedindo você. O NTFS pode conter a.JPG e a.jpg no mesmo diretório. Se você ativar o Unix Subsystem (descontinuado), os nomes de arquivo também farão distinção entre maiúsculas e minúsculas no Windows Explorer Shell. technet.microsoft.com/en-us/library/cc771470.aspx
Furkan Omay
11
@FurkanOmay eu vejo, bom e velho subsistema unix, obrigado por isso.
MDMoore313
11
@FurkanOmay eu sabia o que você queria dizer;) #
MDMoore313 24/02
@BigHomie resposta atualizada para explicar como para permitir posix
DavidPostill
6

O NTFS diferencia maiúsculas de minúsculas (e dependendo de como você vê o vidro, pode ser uma coisa boa ou ruim). Na realidade, alcançar Insensibilidade a Casos era um desafio nos primeiros dias, pois você NÃO precisava diferenciar os valores ASCII de az e AZ.

Não há como diferenciar maiúsculas de minúsculas do Windows (SO), mesmo que o NTFS (o sistema de arquivos) usado pelos SOs atuais possa oferecer suporte para estar em conformidade com o POSIX.

De acordo com a Microsoft, você poderia ter example.JPG e example.jpg no mesmo diretório do NTFS ( clique aqui ), mas o SO (todas as versões do Windows) não o suporta, o que torna o sistema de arquivos inútil :)

Como parte dos requisitos de conformidade com o POSIX, o Windows NT File System (NTFS) fornece uma convenção de nomenclatura de arquivos e diretórios com distinção entre maiúsculas e minúsculas . Embora o NTFS e o subsistema POSIX lidem bem com distinção entre maiúsculas e minúsculas, os aplicativos baseados em Windows , 16-bit, MS-DOS, OS / 2 e Win32 não.

Dhiwakar Ravikumar
fonte
11
A distinção entre maiúsculas e minúsculas não é tão difícil, especialmente em codificações como ASCII. DOS fez, CP / M fez. A insensibilidade e a preservação da caixa são a porca mais difícil de quebrar. Certamente não é difícil de fazer, mas é mais difícil de fazer de maneira consistente quando você pode ter a sorte de ter 16 a 32 KB de RAM para brincar e que precisa manter um aplicativo fazendo coisas realmente úteis também.
a CVn