Stellen Sie sich einen Quellbaum vor. Es gibt überall XML-Dateien.
Aber da sich im Stammverzeichnis dieses Baums eine XYZ.xml befindet, werden meine XML-Dateien nicht gefunden.
find -iname *.xml
zurück
./XYZ.xml
statt
./XYZ.xml
./a/b/c/bob.xml
./b/d/top.xml
Akzeptierte Antwort:
find -iname '*.xml'
Andernfalls erweitert Ihre Shell *.xml
zu XYZ.xml
, und der Befehl, der tatsächlich ausgeführt wird, ist
find -iname XYZ.xml
Der Grund, warum es funktioniert, wenn es keine XML-Dateien im aktuellen Verzeichnis gibt, ist, dass Shells Platzhalter im Allgemeinen nicht erweitert lassen, wenn sie mit nichts übereinstimmen. Generell gilt:Jedes Mal, wenn Sie möchten, dass Wildcards durch ein anderes Programm als die Shell erweitert werden (z. B. durch find
, tar
, scp
, usw.), müssen Sie sie in Anführungszeichen setzen, damit die Shell nicht versucht, sie selbst zu erweitern.