34 votos

Linux/Windows/Unix/... nombres de los archivos: los caracteres permitidos? Que son sin escape?

Los caracteres que se permiten y cuáles de ellos deben ser escapado en la línea de comandos en sistemas operativos diferentes?

22voto

jason saldo Puntos5036

Hay una discusión de nombre de archivo caracteres en el artículo de la Wikipedia sobre los Nombres de Archivo.

Usted puede encontrar este ensayo informativo: la Fijación de Unix/Linux/POSIX Nombres de archivo.

Este artículo compara OS X y Windows XP: X vs XP: Prohibido Caracteres en Nombres de archivo.

Cosas Que no Deberían Estar en los Nombres de Archivo de los $1,000 Alex

No sé qué caracteres debe ser de la onu-se escapó, pero en Linux, probablemente no es una buena idea para escapar los caracteres que tienen un significado especial como "n" (nueva línea), "t" (ficha) y otros, pero que generalmente no es un problema en las operaciones de archivo. Tal vez quiere decir "escapado" en lugar de "sin escape". Los más comunes son los que el shell va a interpretar tales como el espacio, ">", "<", etc. Vea algunos de los artículos que he enlazado para una discusión de estos.

21voto

Los únicos caracteres no permitidos en un nombre de archivo en *nix son NUL y /. En Windows, sólo NUL, :y \ son verdaderamente no se permite, pero muchas de las aplicaciones de restringir aún más, también la prevención de la ?, *, +y %.

En ningún momento ninguno de los caracteres en un nombre de archivo que necesita ser escapado, excepto como es requerido con el fin de no ser interpretados por el shell.

9voto

Greg Askew Puntos17236

Si crea un archivo con el Explorador de Windows usando uno de los siguientes caracteres, que se quejan de que los caracteres no están permitidos:

\ / : * ? " < > |

Una buena referencia es aquí:

Nomenclatura de Archivos, Rutas y espacios de nombres
http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx

Microsoft afirma:

"... en Windows basados en plataformas de escritorio, ruta de acceso no válido caracteres pueden incluir ASCII/Unicode caracteres de la 1 a la 31, así como de comillas ( "" ), menor que (<), mayor que (>), pipe (|), retroceso (\b), nulo (\0) y el tabulador (\t)."

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

4voto

Joseph Puntos141

En Linux y otros POSIX sistemas compatibles, "/" está reservada como es el separador de directorio, y "\0" (el carácter NULL) designa el final de la cadena. Todo lo demás está permitido.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

;