Wiele razy podczas pisania skryptów powłoki możesz znaleźć się w sytuacji, w której musisz wykonać akcję w oparciu o to, czy plik istnieje, czy nie .
W Bash możesz użyć polecenia test, aby sprawdzić, czy plik istnieje i określić typ pliku.
Polecenie test przyjmuje jedną z następujących form składni:
 Jeśli chcesz, aby Twój skrypt był przenośny, powinieneś użyć starego testu ; then echo "$FILE exists."fi  
Jeśli chcesz wykonać inną akcję w zależności od tego, czy plik istnieje, czy nie, po prostu użyj konstrukcji if / then:
 Możesz także użyć polecenia test bez instrukcji if. Polecenie za operatorem && zostanie wykonane tylko wtedy, gdy kod zakończenia polecenia testowego to prawda, 
 Jeśli chcesz uruchom serię poleceń po operatorze &&, po prostu umieść polecenia w nawiasach klamrowych, oddzielając je ; lub &&: 
 W przeciwieństwie do &&, instrukcja po Operator || zostanie wykonany tylko wtedy, gdy kod zakończenia polecenia testowego to false. 
Sprawdź, czy katalog istnieje #
 Operatory -d pozwalają sprawdzić, czy plik jest czy nie. 
 Na przykład, aby sprawdzić, czy katalog /etc/docker istnieje, należy użyć: 
 Możesz także użyć podwójnych nawiasów ; then echo "$FILE does not exist."fi  
Tak jak powyżej:
Sprawdź, czy istnieje wiele plików #
 Zamiast używać skomplikowanych zagnieżdżonych konstrukcji if / else, możesz użyć -a (lub && z ; then echo "Both files exist."fi  
Równoważne warianty bez użycia instrukcji IF:
Operatory testu plików #
Polecenie test zawiera następujące operatory FILE, które umożliwiają testowanie określonych typów plików:
-  
-bFILE– Prawda, jeśli PLIK istnieje i jest specjalnym plikiem blokowym. -  
-cFILE– Prawda jeśli PLIK istnieje i jest plikiem znaków specjalnych. -  
-dFILE– Prawda, jeśli PLIK istnieje i jest katalogiem. -  
-eFILE– Prawda, jeśli PLIK istnieje i jest plikiem, niezależnie od typu (węzeł, katalog, gniazdo itp.). -  
-fFILE– Prawda, jeśli PLIK istnieje i jest zwykłym plikiem (nie katalogiem ani urządzeniem). -  
-GFILE– Prawda, jeśli PLIK istnieje i ma tę samą grupę co użytkownik uruchamiający polecenie. -  
-hFILE– Prawda, jeśli PLIK istnieje i jest dowiązaniem symbolicznym. -  
-gFILE– Prawda, jeśli PLIK istnieje i ma ustawioną flagę set-group-id (sgid). -  
-kFILE– Prawda, jeśli PLIK istnieje i ma ustawioną lepką flagę bitową. -  
-L– Prawda, jeśli PLIK istnieje i jest dowiązaniem symbolicznym. -  
-OFILE– Prawda, jeśli PLIK istnieje i należy do użytkownika uruchamiającego polecenie. -  
-pFILE– Prawda, jeśli PLIK istnieje i jest potokiem. -  
-rFILE– Prawda, jeśli PLIK istnieje i można go odczytać. -  
-SFILE– Prawda, jeśli PLIK istnieje i jest gniazdem. -  
-sFILE– Prawda, jeśli PLIK istnieje i ma niezerowy rozmiar. -  
-uFILE– Prawda, jeśli PLIK istnieje i ustawiona jest flaga set-user-id (suid). -  
-wFILE– Prawda, jeśli PLIK istnieje i można go zapisać. -  
-xFILE– Prawda, jeśli PLIK istnieje i jest exe nadaje się do krojenia. 
Wniosek #
W tym przewodniku pokazaliśmy, jak sprawdzić, czy plik lub katalog istnieje w Bash.