Operatory badające pliki
Ostatnią grupą operatorów z tych najpopularniejszych są te, które pozwalają zbadać plik przed uruchomieniem. Można na przykład otworzyć plik jako nowy i coś do niego zapisać podczas gdy taki plik istniał już i mógł zawierać bardzo ważne dla właściwego funkcjonowania systemu informacje. Warto więc byłoby użyć wcześniej operatora sprawdzającego czy dany plik istnieje już w systemie i czy np. można do niego w ogóle pisać. Operatory badające pliki są jednoargumentowymi operatorami biorącymi nazwę pliku lub uchwyt do niego i testującymi go po to by sprawdzić czy "coś" dotyczące danego pliku jest prawdziwe. Niektóre operatory badające pliki:
Zapis Nazwa |
jDziałanie |
|-r $a |do odczytu |
[Plik jest odczytywalny |
|-w $a|do zapisu |
|piik może zostać zapisany |
|—x $a [wykonywalny |
|piik ma atrybut wykonywalności |
|-e $a|istnieje |
|Plik istnieje |
|— z $a |zerowa wielkość |
|piik ma zerową wartość |
|-s $a|niezerowa wielkość |plik ma niezerową wartość | |
|-f $a|plik |
|zwykły plik |
|-d $a [katalog |
|katalog |
|-1 $a [dowiązanie |
[symboliczne dowiązanie |
|-p $a [nazwany potok |
[nazwany potok |
|-b $a|plik blokowy |
[specjalny plik blokowy |
|-c $a|plik znakowy |
[specjalny plik znakowy |
|-T $a|plik tekstowy |
[oznacza plik tekstowy |
|-B $a|plik binarny |
[oznacza plik binarny |
Zwykły plik nie jest tym samym co plik tekstowy. Plikiem binarnym jest na przykład jądro startowe systemu /vmlinux. Jest to przeciwieństwo pliku tekstowego.
Operatory - T oraz - B działają następująco. Pierwszy blok pliku jest sprawdzany, czy nie ma w nim jakichś dziwnych znaków np. kodów kontrolnych czy znaków z ustawionym najstarszym bitem. Jeśli znaleziono zbyt dużo takich dziwnych znaków, powyżej 30%, system ustala dany plik jako binarny. W przeciwnym przypadku plik zostaje rozpoznany jako tekstowy. Plik zostaje uznany za binarny także gdy w pierwszym bloku znajduje się zero.