If-Koubou

Dlaczego Dir *. * Lista wszystkich plików i folderów?

Dlaczego Dir *. * Lista wszystkich plików i folderów? (Jak)

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, społecznościowego forum z pytaniami i odpowiedziami.

Pytanie

Czytnik SuperUser Luu Vinh Phuc chce wiedzieć, dlaczego dir *. * Wyświetla listę wszystkich plików i folderów:

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, bez względu na to, z jakiego rozszerzenia. Nie oznacza to, że ciąg zawiera ".", Który może, ale nie musi, zawierać znaki przed lub po ".".

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 ".".

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.