Znaki wieloznaczne w Linuxie

Słownik kwalifikacji INF.02 - Administracja i eksploatacja systemów komputerowych, urządzeń peryferyjnych i lokalnych sieci komputerowych

Znaki wieloznaczne służą do dopasowywania nazw plików i katalogów w powłoce systemu Linux, np. Bash. Mechanizm ten nazywa się często globbingiem. Dzięki niemu można wykonać polecenie na wielu plikach naraz bez wpisywania każdej nazwy osobno.

Najważniejsze symbole

  • * — zastępuje dowolny ciąg znaków, także pusty.
  • ? — zastępuje dokładnie jeden dowolny znak.
  • [abc] — dopasowuje jeden znak z podanego zestawu, np. a, b albo c.
  • [a-c] — dopasowuje jeden znak z zakresu od a do c.
  • [!abc] — dopasowuje jeden znak inny niż a, b lub c.

Przykłady

ls *.txt

Wyświetla pliki z rozszerzeniem .txt w bieżącym katalogu.

ls /home/user/[a-c]*.txt

Wyświetla pliki w katalogu /home/user, których nazwa zaczyna się od a, b lub c, a kończy się na .txt.

ls plik?.txt

Dopasuje np. plik1.txt, ale nie dopasuje plik10.txt, ponieważ ? oznacza dokładnie jeden znak.

Ważne na egzaminie

Wzorzec [a-c]*.txt oznacza: pierwszy znak nazwy to a, b lub c, potem może wystąpić dowolny ciąg znaków, a nazwa musi kończyć się na .txt. To nie jest wyszukiwanie rekurencyjne — polecenie ls /home/user/[a-c]*.txt sprawdza tylko wskazany katalog, a nie jego podkatalogi.