Acabo de notar que no es posible nombrar una carpeta ._.
, sino que se nombra ._
. A veces, desaparece justo después de nombrarlo, pero vuelve a aparecer después de actualizar la vista. Windows parece tener un problema con los puntos al final de un nombre de archivo, ¿por qué es esto?
74
.
en Windows.cd -- -_-
posiblemente funcione. El--
es un marcador común de "fin de opciones".--
por sí solo significa " este es el final de las opciones, trate cualquier cosa que comience-
como un valor literal ". Acabo de probar:mkdir -- -_-
ycd -- -_-
funciona como esperaba../-_-
debería funcionar también.cd "-_-"
el shell usa las comillas para agruparlas pero no las trata como parte del argumento; se equivoca coninvalid option
Respuestas:
Windows normalmente requiere que los archivos no tengan extensión o una extensión que tenga al menos un carácter de largo; no es genial con extensiones de longitud cero, es decir, nombres de archivo que terminan en
.
. Las carpetas también pueden tener extensiones, por lo tanto, Windows no permite que sus nombres terminen con a.
. Fuente, del artículo que DavidPostill enlazó :(El énfasis es mío.) Si intenta finalizar un archivo o directorio nombrado con un punto, Windows simplemente asume que no quería una extensión y, por lo tanto, la elimina, incluso si la crea con
md
un símbolo del sistema.¡Zona peligrosa! Si desea que termine directamente el nombre de una carpeta
.
, deberá usar la secuencia de anulación de nombre sin procesar mágico de\\?\
. En un símbolo del sistema,md \\?\C:\path\to\container\._.
creará una carpeta llamada._.
, pero muchos programas tendrán problemas, incluso Explorer:Dicho directorio solo se puede eliminar
rd
seguido de su\\?\
nombre o renombrado con su nombre corto (8.3,dir /x
).fuente
dir /x
hace bastante fácil, y hay otras veces que este nombre es útil.¿Windows parece tener un problema con los puntos al final de un nombre de archivo? ¿Por qué es esto?
El enlace de origen a continuación contiene más detalles sobre las reglas para nombrar.
Archivos de nombres de origen , rutas y espacios de nombres
fuente
No es un error Es por diseño para evitar problemas de compatibilidad.
Es un remanente de los viejos tiempos de DOS.
Los sistemas de archivos FAT12 (disquete) y FAT16 (FAT16 antes del soporte de nombre de archivo largo introducido en Windows 95) solo tenían nombres de archivo almacenados en 11 bytes:
8 bytes para el nombre, 3 para la extensión. El "punto" entre el nombre y la extensión ni siquiera se almacenó. Fue implícito y se agregó automáticamente para fines de visualización.
Los directorios no tenían extensiones en absoluto. En cambio, los 3 bytes para la extensión se rellenaron con caracteres "$" (que eran ilegales en nombres reales).
Debido a que Windows todavía es compatible con este Explorer y muchos otros componentes de Windows silenciosamente, desaparece el período final para evitar la creación de problemas de compatibilidad.
Como han dicho otros, puede manejar tales carpetas utilizando la semántica RAW (\\? \ Prefijo antes del nombre de ruta absoluto).
Detrás de escena, NTFS y los sistemas de archivos de red no tienen ningún problema con dichos archivos y carpetas. Es solo un caso de Explorer tratando de evitar que el usuario cree algo que pueda causar problemas para otro software.
(De hecho, también hay otros sobrantes:
los nombres de archivo como COM, COM1, COM2, AUX, PRN, LPT, LPT1, LPT2, LPT3, CON pueden causar problemas similares en los que Explorer y muchas otras partes de Windows se confunden porque estos nombres son nombres "reservados" que también datan de la era de DOS).
fuente
mkdir testfile.name
) y muestre su nombre de DOS en Windows (dir /x
); obtendráTESTFI~1.NAM
, como se esperaba.El problema aquí es que Windows (DOS) permitió nombres de archivo 8.3 en los sistemas de archivos FAT. Significado, 8 caracteres, seguidos de a. seguido de tres personajes. Unix y Linux permiten cualquier carácter, excepto / y \ 0. \ 0 es el terminador de cadena de caracteres C y / es el separador de directorio. Todo lo demás puede ser usado.
Windows 95 solucionó este problema manteniendo una base de datos de nombres de archivo cortos (8.3) para metadatos de nombres de archivo largos (LFN). Si borró sus archivos del sistema operativo Windows 95, se quedaría con archivos con nombres extraños en el disco en su próxima instalación de Windows 95. Por ejemplo, "Mis documentos" podría llamarse MYDOCU ~ 1 en el disco. Obviamente, si pierde los metadatos, no podrá convertirlos fácilmente.
El shell tiene que hacer frente a muchos incrementos históricos que existen desde los días de MS-DOS.
Espero que esto ayude
fuente