Manchmal sehe ich den folgenden Befehl:
find . -name * -exec ls -a {} \;
Ich wurde gebeten, dies auszuführen.
Was {} \;
heißt hier?
-name *
ist schlimmer als überflüssig. Da das *
nicht in Anführungszeichen gesetzt ist, erweitert die Shell es auf die Liste der Dateinamen im aktuellen Ordner, wobei Leerzeichen falsch behandelt werden, was zu unerwarteten Ergebnissen oder einer Fehlermeldung führt. Als zusätzlichen Punkt find
hat viele Funktionen, von denen eine darin besteht, Dateien aufzulisten; Dies vermeidet die Verwendung -exec
. ZB können Sie find . -print
oder verwenden find . -ls
. Schließlich gibt es zwei Möglichkeiten , die Semikolons zu entkommen: entweder , wie Sie mit dem Backslash haben, \;
oder mit einem Zitat: ';'
. Verwenden Sie, womit Sie sich wohler fühlen.
-name *
ist überflüssig.