W systemach Unix/Linux do listowania zawartości katalogu służy polecenie ls. Dodanie opcji -l (tzw. long format) powoduje, że każdy plik jest wypisany w postaci szczegółowego wiersza zawierającego m.in. uprawnienia, liczbę dowiązań, właściciela i grupę, rozmiar, datę modyfikacji oraz nazwę.
Kluczowe jest też zrozumienie działania globów (wildcards). W powłoce bash znaki takie jak * i ? są interpretowane przez powłokę jeszcze przed uruchomieniem programu. Oznacza to, że polecenie ls -l *a* *.jpg nie przekazuje do ls "gwiazdek", tylko listę wszystkich nazw plików, które pasują do podanych wzorców.
- *a* dopasowuje dowolną nazwę zawierającą literę "a" (np. mama.xls, tata.txt).
- *.jpg dopasowuje wszystkie pliki z rozszerzeniem .jpg (np. test.jpg, test2.jpg).
Podanie dwóch wzorców w jednym wywołaniu powoduje, że bash rozszerza oba i przekazuje do ls sumę dopasowań, więc wynik obejmuje jednocześnie pliki "z a w nazwie" oraz pliki JPG.
Dlaczego pozostałe odpowiedzi są błędne?
- dir *a*.jpg jest typowe dla środowisk Windows/DOS; w Linux nie jest standardowym odpowiednikiem i dodatkowo wzorzec wymaga jednocześnie "a" oraz końcówki .jpg, co nie odpowiada pokazanemu zestawowi.
- grep *a* *.jpg służy do przeszukiwania treści plików (a nie listowania nazw), więc nie generuje wykazu plików w formacie jak na ilustracji.
- find *.jpg | *a* ma niepoprawną składnię: find wymaga ścieżki/startu wyszukiwania i warunków (np. -name), a sam "*a*" po znaku | nie jest poleceniem filtrującym.
Na egzaminie warto pamiętać: jeśli w odpowiedzi ma się pojawić format długi i konkretne nazwy plików, najczęściej właściwe będzie ls -l połączone z poprawnymi globami rozwijanymi przez bash.