Le estensioni dei file non sono necessarie su unice, tuttavia ogni file tarred, gzipped o bzipped che incontro ha un'estensione simile a .tar
, .tar.gz
o .tgz
.
C'è qualche motivo speciale per quello o è solo una convenzione?
Le estensioni dei file non sono necessarie su unice, tuttavia ogni file tarred, gzipped o bzipped che incontro ha un'estensione simile a .tar
, .tar.gz
o .tgz
.
C'è qualche motivo speciale per quello o è solo una convenzione?
Risposte:
Inizialmente, sui sistemi unix, le estensioni sui nomi dei file erano una questione di convenzione. Hanno permesso a un essere umano di scegliere il programma giusto per aprire un file. La convenzione moderna prevede l'uso delle estensioni nella maggior parte dei casi; eccezioni comuni sono:
README
, TODO
. A volte c'è una parte aggiuntiva che indicano una sottocategoria, ad esempio INSTALL.linux
, INSTALL.solaris
..bashrc
, .profile
, .emacs
.Makefile
.(Questi sono casi comuni, non regole rigide).
La maggior parte dei formati di file binari contiene anche un tipo di intestazione che descrive le proprietà del file e in genere consente di identificare il formato del file tramite numeri magici . Il file
comando esamina queste informazioni e mostra le sue ipotesi.
A volte l'estensione del file fornisce più informazioni rispetto al formato del file, a volte è il contrario. Ad esempio molti formati di file sono costituiti da un archivio zip : librerie Java ( .jar
), documenti OpenOffice ( .odt
, ...), documento Microsoft Office ( .docx
, ...), ecc. Un altro esempio sono i file di codice sorgente, in cui l'estensione indica il linguaggio di programmazione, che può essere difficile per un computer indovinare automaticamente dal contenuto del file. Al contrario, alcune estensioni sono selvaggiamente ambigue, ad esempio .o
viene utilizzato per file di codice compilati (file oggetto ), ma l'ispezione del contenuto del file di solito rivela facilmente a quale tipo di macchina e sistema operativo è destinato il file oggetto.
Un vantaggio dell'estensione è che è molto più veloce riconoscerlo che aprire il file e cercare sequenze magiche. Ad esempio, il completamento dei nomi dei file nelle shell è quasi sempre basato sul nome (principalmente l'estensione), perché la lettura di ogni file in una directory di grandi dimensioni può richiedere molto tempo mentre la sola lettura dei nomi dei file è abbastanza veloce per una Tabstampa.
A volte la modifica dell'estensione di un file può consentire di dire come interpretare un file, quando due formati di file sono quasi, ma non del tutto identici. Ad esempio, un server Web potrebbe trattare .shtml
e in modo .html
diverso, il primo è sottoposto a pre-elaborazione lato server , il secondo viene servito così com'è.
Nel caso degli archivi gzip, gzip
no file ricomprimere le cui estremità nome .gz
, .tgz
e poche altre estensioni. In questo modo è possibile eseguire gzip *
per comprimere tutti i file in una directory e i file già compressi non vengono modificati.
Potrebbe non aver bisogno di un'estensione, ma sicuramente rende più facile identificarli nell'output di ls
.
tar
, quindi devi dirgli che tipo di archivio hai.
Le estensioni dei file sono principalmente una convenzione per gli umani che usano il sistema. Ci sono strumenti che usano l'estensione del nome per fare le cose. Ad esempio Nautilus mi mostra un'icona diversa in base all'estensione del file.
Se ti ho dato un file chiamato file
, potresti non sapere come aprire questo file. Tuttavia, se ti dessi un file chiamato file.tar.gz
o file.tar
potresti capirlo rapidamente e facilmente.