¿Qué caracteres están permitidos y cuáles de ellos deben escaparse en la línea de comandos en diferentes sistemas operativos?
linux
windows
command-line-interface
filesystems
java.is.for.desktop
fuente
fuente
Respuestas:
Hay una discusión sobre los caracteres del nombre de archivo en el artículo de Wikipedia sobre nombres de archivos .
Puede encontrar este ensayo informativo: Arreglando nombres de archivo Unix / Linux / POSIX .
Este artículo compara OS X y Windows XP: X vs. XP: Caracteres prohibidos en los nombres de archivo (PDF, ver págs. 64-66 aprox.).
Cosas que no deberían estar en los nombres de archivo por $ 1,000 Alex
No sé qué caracteres deben estar sin escape, pero en Linux, probablemente no sea una buena idea escapar de los caracteres que pueden tener un significado especial como "n" (nueva línea), "t" (tabulación) y otros, pero eso generalmente no es un problema en las operaciones de archivos. Quizás te refieres a "escapado" en lugar de "no escapado". Los más comunes son los que el intérprete interpretará, como el espacio, ">", "<", etc. Vea algunos de los artículos que vinculé para una discusión de ellos.
fuente
Los únicos caracteres no permitidos en un nombre de archivo en * nix son
NUL
y/
. En Windows, solamenteNUL
,:
y\
están verdaderamente no permitidos, pero muchas de las aplicaciones que restringen aún más, impidiendo también?
,*
,+
, y%
.En ningún momento es necesario escapar de los caracteres de un nombre de archivo, excepto cuando sea necesario para que el intérprete no los interprete.
fuente
Si crea un archivo en Windows con Explorer utilizando uno de los siguientes caracteres, se quejará de que los caracteres no están permitidos:
Una buena referencia está aquí:
Nombrar archivos, rutas y espacios de nombres
http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx
Microsoft afirma además:
"... en plataformas de escritorio basadas en Windows, los caracteres de ruta no válidos pueden incluir caracteres ASCII / Unicode del 1 al 31, así como comillas ("), menor que (<), mayor que (>), canalización (|), retroceso (\ b), nulo (\ 0) y pestaña (\ t) ".
http://msdn.microsoft.com/en-us/library/system.io.path.getinvalidpathchars.aspx
fuente
\ / : * ? " < > |
todos ellos y crearlos con mkdir en mi sistema GNU / Linux. Puede usarmkdir '?'
para crear el?
directorio también. He usado el ramdisk y el sistema de archivos XFS para probar eso.En Linux y otros sistemas POSIX compatibles, "/" está reservado ya que es el separador de directorio y "\ 0" (el carácter NULO) designa el final de la cadena. Todo lo demás está permitido.
fuente