/ / Verwirrung um den Bash-Befehl - find -name '* s' - bash, find, globbing

Verwirrung um den Bash-Befehl - find -name '* s' - bash, find, globbing

Ich lerne gerade Bash und habe das folgende Problem festgestellt.

Mit Befehl find -name "*s"Ich habe erwartet, dass der Befehl jede Datei mit Namen finden wird *swie wörtlich *s, aber stattdessen fand bash jede Datei, die mit endete s.

Ich dachte, dass alles innerhalb eines einzelnen Zitats wie eine normale Saite behandelt wird. Was fehlt meinem Verständnis?

Ich denke, eine natürliche Folgefrage wäre:

ich erwarte find -name *s erweitert werden, aber stattdessen Bash gibt mir die folgende Nachricht

Bildbeschreibung hier eingeben

Antworten:

1 für die Antwort № 1

Das -name Option von find erwartet eine String-Eingabe und muss daher in einfachen Anführungszeichen übergeben werden. Zum Entkommen der Sonderzeichen verwenden

In diesem Fall find . -name "*s" wird das gewünschte Ergebnis erzeugen