Quanto possono essere lunghi i nomi dei file?


17

Per quanto tempo possono essere i nomi dei file e i nomi delle cartelle in Ubuntu Linux e quali caratteri sono consentiti nel nome del file e nel nome della cartella in Ubuntu Linux?

Risposte:


21

I nomi dei file in Linux erano lunghi 14 byte nella versione precedente di Unix. Ma il moderno sistema Linux ha 255 byte per i nomi dei file.

Poiché un carattere richiede 1 byte, la lunghezza diventa 255 caratteri. Inoltre le cartelle sono trattate come file nel sistema Linux

Vedi questo link per maggiori informazioni


2
I nomi dei file sono utf-8, quindi lunghezza variabile: un byte per ogni carattere ASCII. 2 o più per qualsiasi altro personaggio, ad esempio £, ★, ≠, ☺, ¡, ¿, á, ..., ecc.
ctrl-alt-delor

1
Se il nome file è nella codifica UTF, la quantità di caratteri diminuisce con un numero maggiore di codifica UTF. Vedi serverfault.com/a/542452/363611 e il commento sotto quella risposta
Sergiy Kolodyazhnyy

4

Non sono sicuro di quale possa essere la lunghezza massima del nome file (per ext4), ma dipende più dal file system che da Linux stesso. Su FAT32, penso che sia 255 caratteri. Probabilmente non avrai mai bisogno di un nome di file così a lungo.

Per quanto riguarda i caratteri consentiti, qualsiasi valore di byte è consentito sul file system ext4, ad eccezione del byte NULL (e /, poiché si tratta del separatore di directory 1 ). Tuttavia, è necessario limitare i nomi dei file al set di caratteri UTF-8, per la più ampia gamma di compatibilità tra applicazioni e dispositivi.

1. Come indicato nel manuale di glibc , "qualsiasi carattere tranne il carattere null è consentito in una stringa del nome file", ma un carattere /nella stringa del nome file separa il nome di un file o di una cartella da quello del suo genitore.


Direi limite ad az, AZ e numeri. L'aggiunta di caratteri non alfa-numerici sta implorando di trovare bug di analisi
dell'URL

@ aking1012 Vorrei usare '.' e '@' non è consigliabile.
Gaurav Agarwal,

'' va benissimo. Non ho visto @ andare lanoso, ma immagino che potrebbe in qualche caso d'angolo. Le cose che i parser usano come delimitatori e che non sfuggono correttamente sono più ciò a cui mi riferivo - esempi: spazio, /, ", ', ecc.
RobotHumans

1
Il periodo .è ampiamente utilizzato nel sistema stesso, quindi non è un problema. L' @dovrebbe andare bene, vedo server di posta elettronica (ad esempio exim) con una directory per account che contengono @e non hanno alcun problema di sorta.
Marios Zindilis,

1
usare una @ va bene. 2 commenti: SE usi qualcosa di speciale puoi sempre sfuggire al carattere. Inoltre, rendi conto che a volte un carattere viene utilizzato come divisore: ad esempio ssh lo usa per separare l'utente e il sistema: ad esempio questo: user@system:/dir/dir@dir/potrebbe essere incerto e non compreso).
Rinzwind,
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.