Miks dir *. * Loetleb kõik failid ja kaustad?
Mõnikord võidakse käskude käivitamisel jõuda ootamatute tulemusteni, nii et õpitulemuste taga olevate “miks” õppimine võib olla väga huvitav. Seda silmas pidades on tänase SuperUser Q&A postitusele vastus uudishimulikule lugeja küsimusele.
Tänane küsimuste ja vastuste seanss saabub meiega kohtades, kus on SuperUser-Stack Exchange'i alajaotis, kogukondlikult juhitav Q&A veebisaitide rühmitus.
Küsimus
SuperUser lugeja Luu Vinh Phuc tahab teada, miks dir *. * Loetleb kõik failid ja kaustad:
Käsku dir *. * Käivitamisel tekitab see ootamatuid tulemusi. Loetletud on isegi failid ja kaustad, millel pole nime mingit punkti. Näiteks:
Miks nii? Kas on võimalik faile loetleda ainult punktiga?
Miks dir *. * Loetleb kõik failid ja kaustad?
Vastus
SuperUser'i panustaja Fleet Command on meile vastus:
DIR-käsk pärineb ajast, mil:
- Ajavahemik (.) Ei olnud faili- või kaustanimedes märgina lubatud
- Failide ja kaustade nimed olid piiratud 8 tähemärgiga ja 3 tähemärki laienduste jaoks
Seetõttu tähendas see standard, *. * Mis tahes nimest ja laiendist olenemata. See ei tähenda stringi, mis sisaldas “.”, Mis võib olla või ei pruugi olla enne “.”.
Microsofti poliitika säilitab tagasiulatuva ühilduvuse, et säilitada *. * Tõlgendus. Kuid Windows PowerShellis tähistab *. * Stringi, mis sisaldab ".", Mis võib olla või ei pruugi enne ".".
Kas teil on midagi lisada selgitusele? Heli on kommentaarides välja lülitatud. Kas soovite lugeda rohkem vastuseid teistelt tech-savvy Stack Exchange'i kasutajatelt? Vaadake siin täielikku arutelu lõiku.