Estensioni di file con distinzione tra maiuscole e minuscole in Windows e Linux


10

In Linux puoi avere i file example.JPGe example.jpgnella stessa directory.

In Windows hai estensioni con distinzione tra maiuscole e minuscole, ma non puoi inserire questi due file nella stessa directory. Perchè no?


1
possibile duplicato di Tutte le versioni di Windows non fanno distinzione tra maiuscole e minuscole? (Probabilmente c'è una domanda migliore di così)
Cole Johnson,

FAT ha tenuto l'estensione separata dal nome di base e il sistema operativo ha aggiunto .per scopi di input e visualizzazione. (Credo sia sicuro affermare che praticamente nessuno usa FAT per nulla tranne l'interoperabilità in questi giorni.) Non so esattamente come NTFS lo faccia, ma suppongo che sia simile a tutti i principali file system Linux, che semplicemente tratta il nome del file come una serie di caratteri. Non c'è niente di speciale lì sull'estensione del file: è semplicemente per convenzione ed è trattato dal file system come parte del nome del file.
un CVn

Cerca ObCaseInsensitivee superuser.com/q/266110/59271
user541686

@grawity non è solo un caso di tomayto, tomahto?
wvdz,

Risposte:


32

In Windows hai estensioni con distinzione tra maiuscole e minuscole, ma non puoi inserire questi due file nella stessa directory. Perchè no?

Se un'unità è formattata come NTFS è possibile avere sia example.JPGe example.jpg.

Tuttavia, se si tenta di aprire uno di questi file in un'applicazione Win32 , ad esempio Blocco note, si avrà accesso solo a uno dei file , indipendentemente dal caso del nome file digitato nella finestra di dialogo Apri file.


I nomi dei file sono case sensitive sui volumi NTFS

Come parte dei requisiti per la conformità POSIX, il file system Windows NT (NTFS) fornisce una convenzione di denominazione di file e directory con distinzione tra maiuscole e minuscole. Anche se NTFS e il sottosistema POSIX gestiscono bene la distinzione tra maiuscole e minuscole, le applicazioni basate su Windows a 16 bit, basate su MS-DOS, basate su OS / 2 e basate su Win32 no .

In NTFS, è possibile creare nomi di file univoci, memorizzati nella stessa directory, che differiscono solo nel caso. Ad esempio, i seguenti nomi di file possono coesistere in una directory su un volume NTFS:

CASE.TXT
case.txt
case.TXT

Tuttavia, se si tenta di aprire uno di questi file in un'applicazione Win32 , ad esempio Blocco note, si avrà accesso solo a uno dei file , indipendentemente dal caso del nome file digitato nella finestra di dialogo Apri file.

...

NTFS supporta due modalità operative leggermente diverse che possono essere selezionate dal sottosistema dell'applicazione che interagisce con NTFS. Il primo fa distinzione tra maiuscole e minuscole e richiede che i nomi dei file forniti dall'applicazione corrispondano ai nomi memorizzati sul disco, incluso il caso, se si desidera selezionare il file su disco. La seconda modalità di funzionamento è preservare le maiuscole e minuscole. Ciò significa che le applicazioni possono selezionare i file sul disco anche se il nome fornito differisce nel caso dal nome memorizzato sul disco. Si noti che entrambe le modalità mantengono il caso utilizzato per creare i file. La differenza di comportamento indicata qui si applica solo quando un'applicazione deve individuare un file esistente. POSIX sfrutta la modalità di maiuscole e minuscole, mentre MS-DOS, WOW eI sottosistemi Win32 utilizzano la modalità senza distinzione tra maiuscole e minuscole .

I nomi dei file di origine fanno distinzione tra maiuscole e minuscole sui volumi NTFS :


In pratica, non sono stato in grado di farlo

Per ottenere due file nella stessa directory differendo solo per caso è necessario abilitare il sottosistema Posix .

POSIX sfrutta la modalità con distinzione tra maiuscole e minuscole, mentre i sottosistemi MS-DOS, WOW e Win32 utilizzano la modalità con distinzione tra maiuscole e minuscole.

Per abilitare Posix vedi:


Questa è una novità per me. Ho dovuto ridimensionare temporaneamente questo perché, anche se in pratica hai citazioni, non sono stato in grado di farlo . Ti dispiacerebbe fornire istruzioni su come realizzare questo in pratica?
MDMoore313,

7
@BigHomie Questa è la shell di Windows, che ti impedisce. NTFS può contenere a.JPG e a.jpg nella stessa directory. Se si abilita il sottosistema Unix (obsoleto), i nomi dei file saranno case sensitive anche in Windows Explorer Shell. technet.microsoft.com/en-us/library/cc771470.aspx
Furkan Omay

1
@FurkanOmay, buon vecchio sottosistema unix, grazie per quello.
MDMoore313,

1
@FurkanOmay sapevo cosa volevi dire;)
MDMoore313

@BigHomie Risposta aggiornata per spiegare come abilitare posix
DavidPostill

6

NTFS distingue tra maiuscole e minuscole (e in base alla modalità di visualizzazione del vetro, potrebbe essere una cosa positiva o negativa). In realtà, raggiungere Case Insensitivity è stata una sfida all'inizio poiché non si doveva differenziare tra i valori ASCII per az e AZ.

Non esiste alcun modo per rendere sensibile al maiuscolo / minuscolo di Windows (il sistema operativo) anche se NTFS (il file system) utilizzato al giorno d'oggi dal sistema operativo Windows può supportare al fine di rispettare POSIX.

Secondo Microsoft potresti avere example.JPG ed example.jpg nella stessa directory su NTFS ( clicca qui ), ma il sistema operativo (Tutte le versioni di Windows) non lo supporta, il che rende il fatto che il file system può essere inutile :)

Come parte dei requisiti per la conformità POSIX, il file system Windows NT (NTFS) fornisce una convenzione di denominazione di file e directory con distinzione tra maiuscole e minuscole . Anche se NTFS e il sottosistema POSIX gestiscono bene la distinzione tra maiuscole e minuscole, le applicazioni basate su Windows a 16 bit, basate su MS-DOS, basate su OS / 2 e basate su Win32 non lo fanno.


1
L'insensibilità al maiuscolo / minuscolo non è così difficile, specialmente nelle codifiche come ASCII. DOS l'ha fatto, CP / M l'ha fatto. L'insensibilità al caso insieme alla conservazione del caso è il dado più difficile da rompere. Certamente non è difficile da fare, ma più difficile da fare in modo coerente quando si potrebbe essere fortunati ad avere 16-32 KB di RAM con cui giocare e che deve contenere un'applicazione che fa anche cose davvero utili.
un CVn
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.