Non esiste una risposta al 100% in bianco o nero qui.
Di solito Linux non si basa sui nomi dei file (e sulle estensioni dei file, ovvero la parte del nome del file dopo l'ultimo periodo normalmente) e determina invece il tipo di file esaminando i primi byte del suo contenuto e confrontandolo con un elenco di numeri magici noti .
Ad esempio, tutti i file di immagine Bitmap (di solito con l'estensione del nome .bmp
) devono iniziare con le lettere BM
nei primi due byte. Gli script nella maggior parte dei linguaggi di scripting come Bash, Python, Perl, AWK, ecc. (Praticamente tutto ciò che tratta le righe che iniziano con un #
commento) possono contenere un shebang come #!/bin/bash
prima riga. Questo commento speciale indica al sistema con quale applicazione aprire il file.
Quindi normalmente il sistema operativo si basa sul contenuto del file e non sul suo nome per determinare il tipo di file, ma affermare che le estensioni di file non sono mai necessarie su Linux è solo metà della verità.
Le applicazioni possono ovviamente implementare i controlli dei file come vogliono, il che include la verifica del nome e dell'estensione del file. Un esempio è Eye of Gnome ( eog
, visualizzatore di immagini standard) che determina il formato dell'immagine dall'estensione del file e genera un errore se non corrisponde al contenuto. Se si tratta di un bug o di una funzionalità, può essere discusso ...
Tuttavia, anche alcune parti del sistema operativo si basano su estensioni di file, ad esempio quando si analizzano i file delle sorgenti del software /etc/apt/sources.list.d/
: solo i file con l' *.list
estensione vengono analizzati, tutti gli altri vengono ignorati. Forse non viene principalmente utilizzato per determinare il tipo di file qui, ma piuttosto per abilitare / disabilitare l'analisi di alcuni file, ma è comunque un'estensione che influenza il modo in cui il sistema tratta un file.
E, naturalmente, i profitti degli utenti umani più da estensioni di file come che rende il tipo di un file evidente e permette anche di più file con lo stesso nome di base e le estensioni diverse, come site.html
, site.php
, site.js
, site.css
ecc Lo svantaggio è, naturalmente, che il file di estensione e l'effettivo il tipo / contenuto del file non deve necessariamente corrispondere.
Inoltre è necessario per l'interoperabilità multipiattaforma, ad esempio Windows non saprà cosa fare con un readme
file, ma solo a readme.txt
.