Parfois, vous pouvez vous retrouver avec des résultats inattendus lors de l’exécution de commandes, donc apprendre le «pourquoi» derrière les résultats peut être très intéressant. Dans cet esprit, le post de questions-réponses SuperUser d’aujourd’hui a la réponse à la question d’un lecteur curieux.
La question
Le lecteur SuperUser Luu Vinh Phuc veut savoir pourquoi dir *. * Répertorie tous les fichiers et dossiers:
Lorsque j’exécute la commande dir *. *, Cela produit des résultats inattendus. Même les fichiers et dossiers sans aucun point dans le nom sont répertoriés. Par exemple:
Pourquoi donc? Existe-t-il un moyen de ne lister que les fichiers avec un point?
Pourquoi dir *. * Répertorie-t-il tous les fichiers et dossiers?
La réponse
Fleet Command, contributeur SuperUser, a la réponse pour nous:
La commande DIR vient d’un moment où:
- Un point (.) N’était pas autorisé comme caractère dans les noms de fichier ou de dossier
- Les noms de fichiers et de dossiers étaient limités à 8 caractères pour les noms et à 3 caractères pour les extensions
Par conséquent, selon cette norme, *. * Signifiait quel que soit le nom et quelle que soit l’extension. Cela ne signifiait pas une chaîne contenant un «.», Qui pouvait ou non avoir des caractères avant ou après le «.».
La politique de Microsoft préserve la compatibilité descendante, de sorte que l’interprétation de *. * Est conservée. Mais dans Windows PowerShell, *. * Signifie une chaîne contenant un «.», Qui peut ou non avoir des caractères avant ou après le «.».
Avez-vous quelque chose à ajouter à l’explication? Sonnez dans les commentaires. Vous voulez lire plus de réponses d’autres utilisateurs de Stack Exchange férus de technologie? Consultez le fil de discussion complet ici.