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 *s
wie 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
Antworten:
1 für die Antwort № 1Das -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