Heim  >  Artikel  >  Backend-Entwicklung  >  So überprüfen Sie mithilfe der Bash-Shell, ob eine Datei vorhanden ist

So überprüfen Sie mithilfe der Bash-Shell, ob eine Datei vorhanden ist

高洛峰
高洛峰Original
2017-01-09 13:48:211326Durchsuche

Vorwort

Wie kann man bei der Arbeit in der Bash-Umgebung eines Unix-ähnlichen Systems häufig auf ein solches Bedürfnis stoßen? Da eine Nachfrage besteht, gibt es natürlich eine Lösung, mit der Sie den Dateityp ermitteln oder vergleichen können. Mit diesem Befehl können Sie auch überprüfen, ob die Datei vorhanden ist existiert.

Sie können den folgenden Befehl verwenden, um zu überprüfen:

test -e filename
[ -e filename ]
  
test -f filename
[ -f filename ]

Der folgende Befehl verwendet den bedingten Ausdruck von Shell, um zu beurteilen/ Ob das etc/ hosts-Datei existiert:

[ -f /etc/hosts ] && echo "Found" || echo "Not found"

Dieser kombinierte Befehl gibt Folgendes aus:

Found

Eine häufigere Verwendung besteht darin, den Testbefehl in den bedingten Ausdruck der bedingten Beurteilung if..else..fi einzufügen und dann eine andere Verzweigungslogik darin zu schreiben

#!/bin/bash
file="/etc/hosts"
if [ -f "$file" ]
then
 echo "$file found."
else
 echo "$file not found."
fi

Verwandte Operatoren zum Erkennen von Dateiattributen

Wenn die Datei vorhanden ist und die entsprechenden Attribute aufweist, geben die folgenden Operatoren „true“ zurück:

-b FILE
  FILE exists and is block special
-c FILE
  FILE exists and is character special
-d FILE
  FILE exists and is a directory
-e FILE
  FILE exists
-f FILE
  FILE exists and is a regular file
-g FILE
  FILE exists and is set-group-ID
-G FILE
  FILE exists and is owned by the effective group ID
-h FILE
  FILE exists and is a symbolic link (same as -L)
-k FILE
  FILE exists and has its sticky bit set
-L FILE
  FILE exists and is a symbolic link (same as -h)
-O FILE
  FILE exists and is owned by the effective user ID
-p FILE
  FILE exists and is a named pipe
-r FILE
  FILE exists and read permission is granted
-s FILE
  FILE exists and has a size greater than zero
-S FILE
  FILE exists and is a socket
-t FD file descriptor FD is opened on a terminal
-u FILE
  FILE exists and its set-user-ID bit is set
-w FILE
  FILE exists and write permission is granted
-x FILE
  FILE exists and execute (or search) permission is granted

Der obige Befehl wurde von man test kopiert.

Die Methode zur Verwendung der oben genannten Symbole ist genau die gleiche:

if [ operator FileName ]
then
  echo "FileName - Found, take some action here"
else
 echo "FileName - Not found, take some action here"
fi

Zusammenfassung

Das Obige ist das Gesamter Inhalt dieses Artikels Ich hoffe, dass der Inhalt dieses Artikels für das Studium oder die Arbeit eines jeden hilfreich sein kann. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation hinterlassen.

Weitere verwandte Artikel zur Verwendung von Bash Shell zum Überprüfen, ob eine Datei vorhanden ist, finden Sie auf der chinesischen PHP-Website!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn