Je viens de remarquer qu'il n'est pas possible de nommer un dossier ._.
- il est nommé à la ._
place. Parfois, il disparaît juste après l'avoir nommé, mais réapparaît après avoir actualisé la vue. Windows semble avoir un problème de points à la fin d'un nom de fichier - pourquoi?
74
.
Windows.cd -- -_-
peut éventuellement fonctionner. Le--
est un marqueur commun de "fin des options".--
signifie en soi que " ceci est la fin des options, traite tout commençant par-
comme une valeur littérale ". Juste testé:mkdir -- -_-
etcd -- -_-
fonctionne comme prévu../-_-
devrait fonctionner aussi bien.cd "-_-"
le shell utilise les guillemets pour le regroupement mais ne les traite pas comme une partie de l'argument; il erreurs avecinvalid option
Réponses:
Windows requiert normalement que les fichiers n'aient pas d'extension ou une extension d'au moins un caractère; ce n'est pas cool avec des extensions de longueur nulle, c'est-à-dire des noms de fichiers qui finissent par
.
. Les dossiers peuvent aussi avoir des extensions, donc Windows ne laisse pas leurs noms se terminer par un.
. Source, de l'article que DavidPostill a lié :(J'insiste particulièrement sur moi.) Si vous essayez de terminer un fichier ou un répertoire portant un point, Windows suppose simplement que vous ne voulez pas d'extension et le supprime donc, même si vous le créez avec
md
une invite de commande.Zone dangereuse! Si vous voulez vraiment que le nom d'un dossier se termine
.
, vous devez utiliser la séquence de remplacement du nom brut brut\\?\
. Dans une invite de commande, vousmd \\?\C:\path\to\container\._.
créerez effectivement un dossier nommé._.
, mais beaucoup de programmes auront des problèmes avec cela, même Explorer:Un tel répertoire ne peut être supprimé avec
rd
suivi de son\\?\
nom ou renommé avec son nom court (8.3,dir /x
).la source
dir /x
rend assez facile, et il y a d'autres fois, ce nom est pratique.Windows semble avoir un problème avec les points à la fin d'un nom de fichier? Pourquoi est-ce?
Le lien source ci-dessous donne plus de détails sur les règles de nommage.
Fichiers de dénomination source , chemins d'accès et espaces de noms
la source
Ce n'est pas un bug. Il est conçu pour éviter les problèmes de compatibilité.
C'est un reste de l'ancien DOS.
Les systèmes de fichiers FAT12 (disquette) et FAT16 (FAT16 antérieur à la prise en charge des noms de fichiers longs introduits dans Windows 95) ne disposaient que de noms de fichiers stockés sur 11 octets:
8 octets pour le nom et 3 pour l'extension. La "période" entre le nom et l'extension n'était même pas stockée. C'était implicite et ajouté automatiquement à des fins d'affichage.
Les répertoires n'ont pas du tout d'extensions. Au lieu de cela, les 3 octets de l'extension étaient remplis de caractères "$" (qui étaient illégaux dans de vrais noms).
Étant donné que Windows est toujours compatible avec cet explorateur et de nombreux autres composants de Windows, la période de fin disparaît en mode silencieux afin d'éviter de créer des problèmes de compatibilité.
Comme d'autres l'ont déjà dit, vous pouvez réellement gérer de tels dossiers en utilisant la sémantique RAW (le préfixe \\? \ Avant le nom de chemin absolu).
En coulisse, NTFS et les systèmes de fichiers en réseau ne rencontrent aucun problème avec de tels fichiers et dossiers. Il s’agit simplement d’explorateur qui essaie d’empêcher l’utilisateur de créer quelque chose qui pourrait causer des problèmes à d’autres logiciels.
(En fait, il reste également quelques restes:
des noms de fichiers tels que COM, COM1, COM2, AUX, PRN, LPT, LPT1, LPT2, LPT3, CON peuvent également causer des problèmes similaires, où Explorer et de nombreuses autres parties de Windows sont confondus. parce que ces noms sont des noms "réservés" qui datent également de l’ère DOS.)
la source
mkdir testfile.name
) et affichez son nom DOS sous Windows (dir /x
) - vous obtiendrezTESTFI~1.NAM
comme prévu.Le problème ici est que Windows (DOS) a autorisé les noms de fichiers 8.3 sur les systèmes de fichiers FAT. Signification, 8 caractères, suivis de a. suivi de trois personnages. Unix et Linux autorisent tous les caractères, à l'exception de / et \ 0. \ 0 est le terminateur de la chaîne de caractères C et / le séparateur de répertoire. Tout le reste peut être utilisé.
Windows 95 contournait ce problème en conservant une base de données contenant des noms de fichiers courts (8.3) en méta-données LFN (Long File Names). Si vous supprimiez vos fichiers du système d'exploitation Windows 95, il ne resterait plus que des fichiers portant des noms étranges sur le disque lors de votre prochaine installation de Windows 95. Par exemple, "Mes documents" pourrait s'appeler MYDOCU ~ 1 sur le disque. Évidemment, si vous perdez les métadonnées, vous ne pourrez pas les convertir facilement.
Le shell doit faire face à de nombreux incréments historiques qui traînent depuis les jours MS-DOS.
J'espère que cela t'aides
la source