Pregunta

No estoy preguntando sobre reglas sintácticas generales para nombres de archivos.Me refiero a trampas que saltan de la nada y te muerden.Por ejemplo, ¿está intentando nombrar un archivo "COM<n>" en Windows?

¿Fue útil?

Solución

De: http://www.grouplogic.com/knowledge/index.cfm/fuseaction/view_Info/docID/111.

Los siguientes caracteres no son válidos como nombres de archivos o carpetas en Windows usando NTFS: / ? < > \ : * | " y cualquier carácter que puedas escribir con la tecla Ctrl.

Además de los caracteres ilegales anteriores, el símbolo de intercalación ^ Tampoco está permitido en los sistemas operativos Windows que utilicen el sistema de archivos FAT.

En Windows, los nombres de archivos y carpetas que utilizan el sistema de archivos FAT pueden tener hasta 255 caracteres.

En Windows, utilizando el sistema de archivos NTFS, los nombres de archivos y carpetas pueden tener hasta 256 caracteres.

En Ventana, la longitud de una ruta completa en ambos sistemas es de 260 caracteres.

Además de estos caracteres, también son ilegales las siguientes convenciones:

  • Colocar un espacio al final del nombre.
  • Colocar un punto al final del nombre.

Los siguientes nombres de archivos también están reservados en Windows:

  • aux,
  • com1,
  • com2,
  • ...
  • com9,
  • lpt1,
  • lpt2,
  • ...
  • lpt9,
  • con,
  • nul,
  • prn

Otros consejos

Descripción completa de nombres de archivos legales e ilegales en Windows: http://msdn.microsoft.com/en-us/library/aa365247.aspx

Como han dicho otros, los nombres de dispositivos como COM1 no son posibles como nombres de archivos en Windows porque son dispositivos reservados.

Sin embargo, existe un método de escape para crear y acceder a archivos con estos nombres reservados; por ejemplo, este comando redirigirá la salida del ver comando en un archivo llamado COM1:

ver > "\\?\C:\Users\username\COM1"

Ahora tendrás un archivo llamado COM1 que el 99% de los programas no podrán abrir y probablemente se congelará si intentas acceder.

Aquí está el artículo de Microsoft. eso explica cómo funciona este "espacio de nombres de archivos".Básicamente, le dice a Windows que no procese ninguna cadena en el texto y que lo pase directamente al sistema de archivos.Este truco también se puede utilizar para trabajar con rutas de más de 260 caracteres.

Un problema complicado de Unix cuando no lo sabes:

Los archivos que comienzan con - o - son legales, pero es complicado trabajar con ellos, ya que muchas herramientas de línea de comandos piensan que les estás brindando opciones.

Muchas de esas herramientas tienen un marcador especial "--" para señalar el final de las opciones:

gzip -9vf -- -mydashedfilename

El impulso::sistema de archivos Guía de portabilidad tiene mucha buena información.

Bueno, para MSDOS/Windows, NUL, PRN, LPT<n> y CON.Incluso causan problemas si se usan con una extensión:"NUL.TXT"

A menos que esté tocando directorios especiales, los únicos nombres ilegales en Linux son '.' y '..'.Cualquier otro nombre es posible, aunque acceder a algunos de ellos desde el shell requiere el uso de secuencias de escape.

EDITAR:Como dijo Vinko Vrsalovic, los archivos que comienzan con '-' y '--' son una molestia para el shell, ya que esas secuencias de caracteres son interpretadas por la aplicación, no por el shell.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top