GNU/Linux >> Tutoriels Linux >  >> Linux

Le point de la commande externe `cd` ?

Comme indiqué dans cette bonne réponse, les systèmes POSIX ont un binaire externe cd en plus du shell intégré. Sur OS X 10.8, c'est /usr/bin/cd . Vous ne pouvez pas l'utiliser comme le cd intégré puisqu'il se ferme immédiatement après avoir changé son propre répertoire de travail. À quoi ça sert ?

Réponse acceptée :

Il sert principalement à s'assurer que le coffre à outils POSIX est disponible à la fois à l'intérieur et à l'extérieur d'un shell (voir la justification POSIX pour les exiger).

Pour cd , ce n'est pas très utile mais notez que cd change de répertoires mais a d'autres effets secondaires :il renvoie un état de sortie qui aide à déterminer si vous pouvez chdir() à ce répertoire ou non, et affiche un message d'erreur utile expliquant pourquoi vous ne pouvez pas chdir() quand vous ne pouvez pas.

Exemple :

dirs_i_am_able_to_cd_into=$(find . -type d -exec cd {} ; -print)

Un autre effet secondaire potentiel est le montage automatique d'un répertoire.

Sur quelques systèmes, la plupart des commandes externes pour les commandes intégrées standard du shell sont implémentées sous la forme d'un lien symbolique vers le même script :

#! /bin/sh -
"${0##*/}" "[email protected]"

C'est-à-dire démarrer un shell et exécuter la fonction intégrée dedans.

Certains autres systèmes (comme GNU), ont des utilitaires comme de véritables commandes exécutables qui peuvent entraîner des confusions lorsque le comportement diffère de la version intégrée du shell.


Linux
  1. Personnalisation du shell Bash

  2. Une introduction à la commande diff

  3. Comment obtenir l'adresse IP externe dans un script shell ?

  4. Les parenthèses placent-elles vraiment la commande dans un sous-shell ?

  5. Personnalisation de Bash Shell :Gras/couleur La commande ?

Alias ​​de ligne de commande dans le shell Linux

Commande source sous Linux

Qu'est-ce que le Shell sous Linux ?

La commande timer sous Linux

Interface de commandes

Commande Bash fc :utilisez facilement le shell Bash comme un pro