GNU/Linux >> Znalost Linux >  >> Linux

Jak je zástupný znak * interpretován jako příkaz?

Vím, jak * je interpretován v příkazech jako ls například. Ale při pokusu o spuštění * jako příkaz se shell pokusí spustit první soubor nebo adresář ve vašem pracovním adresáři. Proč je to? Jak shell rozumí * ?

Přijatá odpověď:

Na rozdíl od některých jiných operačních systémů, v Unixech je to shell, který rozšiřuje zástupné znaky názvu souboru. Nejprve rozbalí rozšíření parametrů a globy a poté použije (nyní) první slovo jako název pro spuštění příkazu.

To je také důvod, proč soubory pojmenované s úvodní pomlčkou mohou být problematické:globus jako * se rozbalí na názvy souborů a název začínající pomlčkou může být použit jako možnost. (Děsivý příklad je, že soubor s názvem -r v pracovním adresáři by bylo rm * odstranit vše rekurzivně…)

Obvykle se nepoužije * jako první položku na libovolném příkazovém řádku, takže pokud první soubor určí, který příkaz se má v takovém případě spustit, pravděpodobně nezpůsobí problémy.


Linux
  1. Jak používat Linuxový příkaz grep

  2. Jak používat příkaz historie v Linuxu

  3. Jak používat příkaz basename?

  1. Jak zastavit příkaz Najít po prvním zápase?

  2. Jak rychle změnit první slovo v příkazu Bash?

  3. Jak zachytit první IP adresu z příkazu ifconfig?

  1. Jak funguje příkaz oc debug v OpenShift

  2. Jak funguje Tee Command?

  3. Jak jsou závorky interpretovány na příkazovém řádku?