GNU/Linux >> Tutoriels Linux >  >> Linux

Comment le caractère générique * est-il interprété comme une commande ?

Je sais comment * est interprété dans des commandes comme ls par exemple. Mais lorsque vous essayez d'exécuter * en tant que commande, le shell essaie d'exécuter le premier fichier ou répertoire de votre répertoire de travail. Pourquoi est-ce? Comment le shell comprend-il * ?

Réponse acceptée :

Contrairement à certains autres systèmes d'exploitation, sous Unix, c'est le shell qui développe les caractères génériques des noms de fichiers. Il développe d'abord les expansions de paramètres et les globs, puis utilise le premier mot (maintenant) comme nom de la commande à exécuter.

C'est aussi pourquoi les fichiers nommés avec un tiret au début peuvent être gênants :un glob comme * s'étendra aux noms de fichiers, et un nom commençant par un tiret peut être pris en option. (L'exemple effrayant étant qu'un fichier appelé -r dans le répertoire de travail ferait rm * supprimer tout récursivement…)

Habituellement, on n'utiliserait pas * comme le premier élément sur n'importe quelle ligne de commande, donc avoir le premier fichier déterminer la commande à exécuter dans ce cas ne causera probablement pas de problèmes.


Linux
  1. Comment utiliser la commande Linux grep

  2. Comment utiliser la commande history sous Linux

  3. Comment utiliser la commande basename ?

  4. Comment arrêter la commande de recherche après la première correspondance ?

  5. Comment les parenthèses sont-elles interprétées sur la ligne de commande ?

Comment utiliser la commande top sous Linux

Comment utiliser la commande Linux Ping

Comment utiliser la commande nmap

Comment personnaliser la commande Linux top

Comment utiliser la commande fd sur le système Linux

Comment utiliser la commande wget sous Linux ?