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

Wie wird der Platzhalter * als Befehl interpretiert?

Ich weiß, wie * wird in Befehlen wie ls interpretiert zum Beispiel. Aber wenn Sie versuchen, * auszuführen Als Befehl versucht die Shell, die erste Datei oder das erste Verzeichnis in Ihrem Arbeitsverzeichnis auszuführen. Warum ist das? Wie versteht die Shell * ?

Akzeptierte Antwort:

Anders als in einigen anderen Betriebssystemen ist es in Unixen die Shell, die Dateinamen-Platzhalter erweitert. Es erweitert zuerst Parametererweiterungen und Globs und verwendet dann das (jetzt) ​​erste Wort als Namen für den auszuführenden Befehl.

Das ist auch der Grund, warum Dateien, die mit einem führenden Bindestrich benannt sind, problematisch sein können:ein Glob wie * wird auf die Dateinamen erweitert, optional kann ein Name gewählt werden, der mit einem Bindestrich beginnt. (Das beängstigende Beispiel ist, dass eine Datei namens -r im Arbeitsverzeichnis würde rm * machen alles rekursiv entfernen…)

Normalerweise würde man * nicht verwenden als erstes Element in jeder Befehlszeile, sodass es wahrscheinlich keine Probleme verursacht, wenn die erste Datei den auszuführenden Befehl bestimmt.


Linux
  1. So verwenden Sie den Linux-Grep-Befehl

  2. So verwenden Sie den Verlaufsbefehl unter Linux

  3. Funktionsweise des Befehls oc debug in OpenShift

  4. Wie verwende ich den basename-Befehl?

  5. Wie funktioniert der Tee-Befehl?

So verwenden Sie den obersten Befehl unter Linux

So verwenden Sie den Linux-Ping-Befehl

So verwenden Sie den nmap-Befehl

So passen Sie den Linux-Befehl top an

So verwenden Sie den fd-Befehl auf einem Linux-System

Wie verwende ich den wget-Befehl unter Linux?