この細かい答えで参照されているように、POSIXシステムには外部バイナリcd
があります シェルビルトインに加えて。 OS X 10.8では、/usr/bin/cd
。組み込みのcd
のように使用することはできません 自身の作業ディレクトリを変更した直後に終了するためです。それはどのような目的に役立ちますか?
承認された回答:
これは主に、POSIXツールチェストがシェルの内側と外側の両方で使用可能であることを確認するために機能します(これらを要求するためのPOSIXの理論的根拠を参照してください)。
cd
の場合 、これはそれほど便利ではありませんが、cd
に注意してください。 ディレクトリを変更しますが、他の副作用があります。終了ステータスを返し、chdir()
ができるかどうかを判断するのに役立ちます。 そのディレクトリに移動するかどうかに関係なく、chdir()
ができない理由を説明する有用なエラーメッセージを出力します。 できないとき。
例:
dirs_i_am_able_to_cd_into=$(find . -type d -exec cd {} ; -print)
もう1つの潜在的な副作用は、ディレクトリの自動マウントです。
いくつかのシステムでは、標準のシェルビルトインのほとんどの外部コマンドは、以下を実行するのと同じスクリプトへのシンボリックリンクとして実装されます。
#! /bin/sh -
"${0##*/}" "[email protected]"
つまり、シェルを起動して、組み込みのシェルを実行します。
他の一部のシステム(GNUなど)には、動作がシェルビルトインバージョンと異なる場合に混乱を招く可能性のある真の実行可能コマンドとしてのユーティリティがあります。