Paghi i tuoi soldi e tu fai la tua scelta: Sì, No, forse.
Arriva alla definizione di "estensione".
- È "qualcosa dopo l'ultimo punto nel nome"? Se è così, quei file non hanno nome e sono tutti estensioni.
- È "qualcosa dopo un punto che non è il primo carattere nel nome"? Se è così, quei file non hanno un'estensione.
- Se si utilizza qualche altra definizione, la risposta dovrà essere regolata di conseguenza.
Ricordate che i file SCCS utilizzato un prefisso s.
(tra gli altri, che ci si vede p.
file anche - e ci sono stati molti i nomi di file temporanei con altri prefissi). Un file SCCS s.something
ha un'estensione o un prefisso? (Con s.source.c
, è ragionevolmente semplice: c'è un prefisso, un nome e un'estensione o un suffisso, oppure puoi ignorare il prefisso come caso speciale e il nome è s.source
e l'estensione è .c
.) Che dire dell'eseguibile predefinito nome, a.out
? Che dire di un nome come ..dot
; ha un'estensione e, in caso affermativo, di cosa si tratta?
Si noti che la risposta su DOS era più formalizzata. Lì il file system utilizzato per far rispettare (una volta su un altro millennio o giù di lì) i nomi con 8.3 e l'estensione era tangibile. Ma questa è un'epoca passata per la maggior parte (e ci sono pochi che lo mancano).
Anthony Arnold e paxdiablo entrambi hanno notato che i nomi che terminano con .tar.gz
esistono - qual è l'estensione su tali file?
Se si considera l'estensione di somecode-8.76.tar.gz
come un valore diverso da .gz
, ci si sta aprendo a un sacco. Il file contenuto è somecode-8.76.tar
; che si può ragionevolmente dire di avere un'estensione di .tar
. La definizione dell'estensione dell'intero file tar gzip come .tar.gz
solleva la domanda "perché non è .76.tar.gz
" e significa anche che è necessario rivisitare la convenzione di denominazione dei file SCCS. Assorbimento della porzione .76
del nome in .76.tar.gz
o .76.tar
poiché un suffisso sta rendendo davvero complessa la vita. È una domanda valida, ma qualsiasi cosa diversa da "un'estensione è la stringa dall'ultimo punto alla fine del nome" è davvero irreale - o richiede un'interpretazione del significato dell'estensione, ed entra in un'altra area complessa che generalmente è meglio evitare
Si noti che Unix a livello di sistema operativo o di file system non si preoccupa dell'estensione sui file.I programmi possono decidere che si preoccupano delle estensioni, ma questo dipende dal programma. L'estensione è un indicatore del tipo di file; non è definitivo. Ecco perché esiste il programma file
per identificare il contenuto dei file. Guarda il contenuto del file per identificare il contenuto; non presta attenzione all'estensione del file (quindi non deve decidere quale sia l'estensione).
fonte
2015-08-24 03:07:19
Molto interessante. Bene, dato che entrambi trattano i dotfile in modo diverso, sembra ragionevole supporre che entrambi stiano operando su standard diversi (indipendentemente dal fatto che uno standard "vero" esista o meno in questo caso). Pensieri? –
Interessante davvero. [Boost.Filesystem] (http://www.boost.org/doc/reference/html#path-extension), ad esempio, considererebbe un'estensione di file senza nome del file. "estensione del percorso (const path & p) const;' ... se p.filename() contiene un punto ma non consiste solo di uno o due punti, restituisce la sottostringa di p.filename() partendo dal punto più a destra e termina alla fine del percorso, altrimenti restituisce un oggetto percorso vuoto. " – Anthony
@JoshBeam, PHP ha la tendenza a marciare al ritmo di un altro batterista, e quindi cadere fuori passo e fare un paio di giri sbagliati anche da quel batterista diverso. Basta vedere come gestisce le stringhe di query o una qualsiasi delle sue librerie standard. Detto questo, ho sempre considerato i dotfile come file di sola estensione senza nome file, quindi sono rimasto sorpreso dal fatto che il nodo li considerasse non avere un'estensione. – zzzzBov