Strona główna › Pytania INF.02 › Pytanie 1186
INF.02 · pytanie #1186
W systemie Linux, aby wyszukać wszystkie pliki z rozszerzeniem txt, które znajdują się w katalogu /home/user i zaczynają się na literę a lub literę b lub literę c, należy wydać polecenie
- Als /home/user/abc*.txt
- Bls /home/user/a?b?c?.txt
- Cls /home/user/[a-c]*.txt
- Dls /home/user/[abc]*.txt
Poprawna odpowiedź: C. ls /home/user/[a-c]*.txt
Kliknij odpowiedź, którą uważasz za poprawną.
Wyjaśnienie
Polecenie ls /home/user/[a-c]*.txt jest tu zdecydowanie prawidłowe, bo wykorzystuje składnię wyrażeń globbingowych powłoki Bash, która pozwala na selekcjonowanie plików według określonego wzorca. Notacja [a-c] oznacza, że pierwszy znak nazwy pliku musi być literą a, b lub c. Dalej mamy znak *, czyli dowolny ciąg innych znaków (może być też pusty), a następnie .txt. Tak więc zostaną wyświetlone absolutnie wszystkie pliki txt w katalogu /home/user, których nazwa zaczyna się właśnie na którąkolwiek z tych trzech liter. To bardzo praktyczne, jeżeli katalog ma tysiące plików i chcemy zobaczyć tylko wybrane. Z mojego doświadczenia, to podejście jest nie tylko szybkie, ale i bardzo czytelne dla administratora. Takie wzorce stosuje się nie tylko z ls, ale też z poleceniami typu cp, mv, czy nawet rm. Przy pracy z dużymi zbiorami plików, umiejętność takiego filtrowania pozwala uniknąć chaosu i przyspiesza działania. Co ciekawe, w wielu przypadkach można podobne wzorce wykorzystywać także w innych systemach powłokowych, choć nie zawsze (np. w Windowsie działa to inaczej). Ważna uwaga: globbing działa w powłoce, a nie we wszystkich programach, więc czasem potrzebna jest znajomość różnic między glob a regex. Niektórzy mylą te dwa mechanizmy, ale to osobny temat. Ogólnie, korzystanie z [a-c]*.txt to po prostu zgodne z praktyką i bardzo efektywne rozwiązanie w administracji systemami Linux.
🤖 Wyjaśnienie generowane przez AI – weryfikuj w oficjalnych źródłach.