Jak sprawdzić, czy plik istnieje w bash?

How Check If File Exists Bash



Istnieje kilka sposobów sprawdzenia dostępności pliku w systemie Linux. Polecenie test w skrypcie bash jest jednym z kluczowych podejść do sprawdzania istnienia pliku.
Celem tego przewodnika jest omówienie istnienia pliku w systemie za pomocą skryptów bash:

Jak sprawdzić istnienie pliku za pomocą skryptów bash:

1) Wpisując nazwę pliku w terminalu:







Najpierw musimy stworzyć plik skryptu bash, użyj poniższego polecenia:



$dotykaćplik testowy.sh

Nazwa utworzonego przeze mnie pliku to testfile.sh, rozszerzenie .sh wskazuje na plik skryptu powłoki:







Otwórz testfile.sh w dowolnym edytorze tekstu. Następnie napisz skrypt, zapisz go, naciskając Zapisz.

Jednym ze sposobów jest znalezienie pliku, prosząc użytkownika o nazwę pliku w terminalu.



Posługiwać się -F aby sprawdzić istnienie pliku.

Napisz poniższy skrypt:

#!/kosz/bash
wyrzucił „Wprowadź swoją nazwę pliku”
czytaćnowyplik1
Jeśli [ -F '$nowyplik1' ]
następnie
wyrzucił „Plik został znaleziony”
w przeciwnym razie
wyrzucił „Nie znaleziono pliku”
być

Wróć do terminala i uruchom plik, aby wydrukować dane wyjściowe:

./nazwapliku.sh

W terminalu zostanie wyświetlony komunikat o odmowie dostępu.

Spraw, aby był wykonywalny, wykonując poniższe polecenie:

$chmod+ x plik testowy.sh

Wprowadź nazwę pliku, a wydrukuje wynik:

2) Wpisując nazwę pliku podczas pisania skryptu:
Innym sposobem na znalezienie pliku jest podanie nazwy pliku podczas pisania skryptu. Mamy trzy sposoby sprawdzenia dostępności pliku. Pierwszy z nich używa polecenia test, drugi używa if z wyrażeniem w nawiasach kwadratowych, a trzeci jest również z podwójnymi nawiasami kwadratowymi if ale, jak wskazano poniżej:

  1. test WYRAŻENIE.
  2. jeśli [ WYRAŻENIE ]
  3. jeśli [[ WYRAŻENIE ]]

Zrozummy to na przykładach:

1) test [ Wyrażenie ]
Skopiuj podany skrypt i wklej go do edytora, zapisz:

#!/kosz/bash
Nazwa pliku=plik1
Jeśli test -F '$nazwa pliku';
następnie
wyrzucił '$plikznalazł.'
w przeciwnym razie
wyrzucił '$pliknie znaleziono'
być

Wyjście:

Ponieważ w moim katalogu nie ma takiego pliku, kod wyświetla komunikat Nie znaleziono pliku.

2) jeżeli [ Wyrażenie ]

Skopiuj następujący skrypt, aby sprawdzić, czy plik istnieje, czy nie:

#!/kosz/bash
Nazwa pliku=mojplik.txt
Jeśli [ -F '$nazwa pliku' ];
następnie
wyrzucił '$nazwa plikuznalazł.'
w przeciwnym razie
wyrzucił 'nazwa pliku nie została znaleziona'
być

Wyjście:

3) jeśli [[ Wyrażenie ]]

Skopiuj poniższy skrypt i wklej go na terminalu:

#!/kosz/bash
Nazwa pliku=plik testowy
Jeśli [[ -F '$nazwa pliku' ]];
następnie
wyrzucił '$nazwa plikuznalazł.'
w przeciwnym razie
wyrzucił '$nazwa plikunie znaleziono'
być

Wyjście:

Aby sprawdzić katalog:

3) Wpisując nazwę katalogu podczas pisania skryptu

Użyj -D flaga, aby sprawdzić istnienie katalogu.

W poniższym skrypcie dir11 jest zmienną, w której przechowujesz znaleziony plik; w tym przykładzie chcę sprawdzić, czy nazwa katalogu testDir istnieje, czy nie.

#!/kosz/bash
reż11= katalog testowy
Jeśli [ -D '$dir11' ]
następnie
wyrzucił „Znaleziono katalog”
w przeciwnym razie
wyrzucił „Nie znaleziono katalogu”
być

Wyjście:

2) Wpisując nazwę pliku w terminalu:
Po uruchomieniu polecenia w terminalu, aby sprawdzić, czy katalog istnieje, czy nie, musisz podać nazwę katalogu, którego szukasz:

#!/kosz/bash
wyrzucił 'wpisz nazwę swojego katalogu.'
czytaćKierunek1
Jeśli [ -D „Kier1” ]
następnie
wyrzucił „znaleziono katalog”
w przeciwnym razie
wyrzucił 'katalog nie został znaleziony'
być

Wyjście:

Sprawdzenie pliku bez użycia instrukcji if:

Polecenie test może być wykonane bez instrukcji if. Wyświetli dane wyjściowe tylko wtedy, gdy plik istnieje; w przeciwnym razie nie byłoby wyjścia:

Napisz skrypt:

  1. test -Fmojplik.txt&& wyrzucił 'plik został znaleziony'

  2. [ -Fmojplik.txt] && wyrzucił '$plikzostał znaleziony.'

  3. [[ -Fmojplik.txt]] && wyrzucił '$plikzostał znaleziony.'

Wyjście:

Sprawdzenie katalogu bez użycia instrukcji if:

Użyj poniższych instrukcji, aby sprawdzić, czy katalog istnieje, czy nie:

  1. [[ -DtestDir]] && wyrzucił „katalog istnieje”

  2. 2) [ -DtestDir] && wyrzucił „katalog istnieje”

Wyjście:

Sprawdzanie wielu plików/katalogów:

1) Sprawdzanie wielu plików za pomocą instrukcji if:
Użyj flagi -a, aby sprawdzić istnienie różnych plików, zamiast używać zagnieżdżonych instrukcji if/else:

#!/kosz/bash
Jeśli [ -Fnowy_plik.txt-do -Fnowyplik.txt];następnie
wyrzucił „Oba pliki istnieją”.
być

Inny sposób to:

#!/kosz/bash
Jeśli [[ -Fnowy_plik.txt&& -Fnowyplik.txt]];następnie
wyrzucił „Oba pliki istnieją”.
być

Wyjście:

2) Sprawdzanie wielu plików bez użycia instrukcji if:
Użyj poniższej instrukcji, aby sprawdzić wiele plików jednocześnie 1bez użycia, jeśli:

  1. [[ -Fnowy_plik.txt&& -Fnowyplik.txt]] && wyrzuciłOba pliki są zamykane.

  2. [[ -Fnowy_plik.txt&& -Fnowyplik.txt]] && wyrzuciłOba pliki są zamykane.

Wyjście:

Wniosek:

W tym artykule pokazano, jak używać skryptów bash do sprawdzania pliku lub katalogu. Wykorzystaliśmy różne opcje, aby sprawdzić dostępność pliku. Po pierwsze, używamy polecenia test z różnymi flagami. Następnie nauczyliśmy się, jak używać if, zagnieżdżonych if-else i bez instrukcji if do sprawdzania pliku lub katalogu. Przyjrzeliśmy się również, jak sprawdzić wiele plików lub katalogów.