GNU/Linux >> Linux Esercitazione >  >> Linux

Come viene interpretato il jolly * come un comando?

So come * viene interpretato in comandi come ls Per esempio. Ma quando si tenta di eseguire * come comando, la shell tenta di eseguire il primo file o directory nella directory di lavoro. Perchè è questo? Come fa la shell a capire * ?

Risposta accettata:

A differenza di altri sistemi operativi, in Unix è la shell che espande i caratteri jolly del nome file. Espande prima le espansioni dei parametri e i glob, quindi usa la (ora) prima parola come nome per l'esecuzione del comando.

Questo è anche il motivo per cui i file denominati con un trattino iniziale possono essere problematici:un glob come * si espanderà ai nomi dei file e un nome che inizia con un trattino può essere preso come opzione. (L'esempio spaventoso è che un file chiamato -r nella directory di lavoro renderebbe rm * rimuovi tutto in modo ricorsivo...)

Di solito non si usa * come primo elemento su qualsiasi riga di comando, tuttavia, è probabile che il fatto che il primo file determini il comando da eseguire in quel caso non causi problemi.


Linux
  1. Come usare il comando Linux grep

  2. Come usare il comando cronologia in Linux

  3. Come funziona il comando oc debug in OpenShift

  4. Come utilizzare il comando basename?

  5. Come cambiare rapidamente la prima parola in un comando Bash?

Come utilizzare il comando superiore in Linux

Come utilizzare il comando Ping di Linux

Come usare il comando nmap

Come personalizzare il comando top di Linux

Come utilizzare il comando fd sul sistema Linux

Come utilizzare il comando wget in Linux?