GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Finden Sie nicht rekursiv, wenn Sie ein Muster in der Befehlszeile erhalten?

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.


Linux
  1. So finden Sie Dateien in CentOS 8 in der Befehlszeile

  2. Bash Echo Die Befehlszeile wird in der Befehlszeile selbst ausgeführt (nicht in einem Skript)?

  3. grep:Befehl nicht gefunden

  4. Suchen Sie die WordPress-Version über die Befehlszeile

  5. Was ist der Unix-Befehl, um herauszufinden, welche ausführbare Datei einem bestimmten Befehl entspricht?

Erledigen Sie mit GNU Parallel mehr über die Linux-Befehlszeile

Suchen von Dateien in der Befehlszeile (How To)

Meistern Sie die Linux-Befehlszeile

So suchen Sie nach Dateien über die Linux-Befehlszeile

So finden Sie Dateien in der Ubuntu-Befehlszeile

Finden Sie die Befehlszeile?