GNU/Linux >> Linux Esercitazione >  >> Linux

Linux/Windows/Unix/... nomi di file:quali caratteri sono consentiti? Quali sono senza escape?

Soluzione 1:

Gli unici caratteri non consentiti in un nome file in *nix sono NUL e / . In Windows, solo NUL , : e \ non sono davvero consentiti, ma molte app lo limitano ulteriormente, impedendo anche ? , * , + e % .

In nessun momento i caratteri in un nome file hanno bisogno essere sfuggito tranne quanto richiesto per non essere interpretato dalla shell.

Soluzione 2:

C'è una discussione sui caratteri dei nomi dei file nell'articolo di Wikipedia sui nomi dei file.

Potresti trovare informativo questo saggio:Fixing Unix/Linux/POSIX Filenames.

Questo articolo mette a confronto OS X e Windows XP:X vs. XP:caratteri proibiti nei nomi dei file (PDF, vedi pp circa 64-66).

Cose che non dovrebbero essere nei nomi dei file per $ 1.000 Alex

Non so quali caratteri debbano essere un -escaped, ma in Linux probabilmente non è una buona idea sfuggire ai caratteri che possono avere un significato speciale come "n" (newline), "t" (tab) e altri, ma generalmente non è un problema nelle operazioni sui file. Forse intendi "scappato" piuttosto che "non scappato". I più comuni sono quelli che la shell interpreterà come spazio, ">", "<", ecc. Guarda alcuni degli articoli che ho collegato per una discussione su questi.

Soluzione 3:

Se crei un file su Windows con Explorer utilizzando uno dei seguenti caratteri, si lamenterà che i caratteri non sono consentiti:

\ / : * ? " < > |

Un buon riferimento è qui:

Denominazione di file, percorsi e spazi dei nomi
http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx

Microsoft afferma inoltre:

"... su piattaforme desktop basate su Windows, i caratteri di percorso non validi possono includere caratteri ASCII/Unicode da 1 a 31, nonché virgolette ("), minore di (<), maggiore di (>), barra verticale (|), backspace (\b), null (\0) e tab (\t)."

http://msdn.microsoft.com/en-us/library/system.io.path.getinvalidpathchars.aspx

Soluzione 4:

Su Linux e altri sistemi compatibili con POSIX, "/" è riservato poiché è il separatore di directory e "\0" (il carattere NULL) indica la fine della stringa. Tutto il resto è consentito.


Linux
  1. Szyszka – Nuovo rinominatore di file batch veloce per Linux, Windows, Mac

  2. Linux – I diversi kernel Linux/unix sono intercambiabili?

  3. Cosa sono i file /dev/zero e /dev/null in Linux

  4. Quali caratteri sono vietati nei nomi delle directory di Windows e Linux?

  5. Nel mio file /etc/hosts/ su Linux/OSX, come creo un sottodominio con caratteri jolly?

Come convertire un file Windows in un file UNIX

Perché i collegamenti fisici alle directory non sono consentiti in Unix/linux?

Linux – Unire /usr/bin e /usr/sbin in /bin (gnu/linux)?

Comando AWK in Linux/Unix

/dev/null in Linux

/proc/cpuinfo e /proc/meminfo in Linux