
Czasami możesz otrzymać nieoczekiwane wyniki podczas uruchamiania poleceń, więc poznanie „dlaczego” za wynikami może być bardzo interesujące. Mając to na uwadze, dzisiejszy post z pytaniami i odpowiedziami dla SuperUser zawiera odpowiedź na ciekawe pytanie czytelnika.
Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser — pododdziału Stack Exchange, społecznościowej grupy witryn internetowych z pytaniami i odpowiedziami.
Pytanie
Czytnik SuperUser Luu Vinh Phuc chce wiedzieć, dlaczego dir *. * wymienia wszystkie pliki i foldery:
Kiedy uruchamiam polecenie dir *.*, daje nieoczekiwane wyniki. Wyświetlane są nawet pliki i foldery bez kropki w nazwie. Na przykład:
Dlaczego? Czy istnieje sposób, aby wyświetlić tylko pliki z kropką?
Dlaczego dir *.* wyświetla wszystkie pliki i foldery?
Odpowiedź
Współtwórca SuperUser Fleet Command ma dla nas odpowiedź:
Polecenie DIR pochodzi z czasów, gdy:
- Kropka (.) nie była dozwolona 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 dowolną nazwę i rozszerzenie. Nie oznaczał ciągu zawierającego „.”, który może, ale nie musi mieć znaków przed lub po „.”.
Zasadą firmy Microsoft jest zachowywanie wstecznej kompatybilności, dzięki czemu interpretacja *.* jest zachowana. Ale w Windows PowerShell *.* oznacza ciąg zawierający „.”, który może, ale nie musi mieć znaków przed lub po „.”.
Masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych doświadczonych technologicznie użytkowników Stack Exchange? Sprawdź pełny wątek dyskusji tutaj.