Dlaczego Dir *. * Lista wszystkich plików i folderów?
Czasami możesz uzyskać nieoczekiwane wyniki podczas uruchamiania poleceń, więc poznanie "dlaczego" wyników może być bardzo interesujące. Mając to na uwadze, dzisiejszy post z pytaniami i odpowiedziami SuperUser zawiera odpowiedź na ciekawe pytanie czytelnika.
Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, opartego na społecznościach grupowania witryn z pytaniami i odpowiedziami.
Pytanie
Czytnik SuperUser Luu Vinh Phuc chce wiedzieć, dlaczego katalog *. * Wyświetla wszystkie pliki i foldery:
Kiedy uruchomię polecenie dir *. *, Spowoduje to nieoczekiwane wyniki. Nawet pliki i foldery bez kropki w nazwie są wymienione. Na przykład:
Dlaczego? Czy istnieje sposób na wylistowanie tylko plików z kropką??
Dlaczego dir *. * Wyświetla listę wszystkich plików i folderów?
Odpowiedź
Superuser contributor Fleet Command ma dla nas odpowiedź:
Polecenie DIR pochodzi z czasu, gdy:
- Okres (.) Nie był dozwolony jako znak w nazwach plików lub folderów
- Nazwy plików i folderów zostały ograniczone do 8 znaków dla nazw i 3 znaków dla rozszerzeń
Dlatego, według tego standardu, *. * Oznaczało cokolwiek nazwę i jakiekolwiek rozszerzenie. Nie oznacza to, że ciąg zawiera ".", Który może lub nie może mieć znaków przed lub po znaku ".".
Polityka Microsoftu zachowuje kompatybilność wsteczną, dzięki czemu interpretacja *. * Zostaje zachowana. Ale w Windows PowerShell *. * Oznacza łańcuch zawierający ".", Który może ale nie musi mieć znaków przed lub po znaku ".".
Czy masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.