引用したようにこれは素晴らしい答えですcd
、POSIXシステムには組み込みシェルに加えて外部バイナリがあります。 OS X 10.8では、独自の作業ディレクトリを変更した直後に終了するため、組み込み/usr/bin/cd
プログラムのように使用することはできません。cd
その目的は何ですか?
ベストアンサー1
これは、主にPOSIXツールボックスをシェルの内側と外側の両方で使用できるようにするために使用されます。POSIXでこれを求める理由)。
これはcd
あまり役に立ちませんが、cd
ディレクトリを変更すると他の副作用があることに注意してください。ディレクトリにchdir()
アクセスできるかどうかを判断するのに役立つ終了ステータスを返し、ディレクトリにアクセスできない理由を説明する便利なエラーメッセージを出力しますchdir()
。できない時。
例:
dirs_i_am_able_to_cd_into=$(find . -type d -exec cd {} \; -print)
別の潜在的な副作用はディレクトリの自動マウントです。
一部のシステムでは、標準シェル組み込みのほとんどの外部コマンドが同じスクリプトへのシンボリックリンクとして実装されています。
#! /bin/sh -
"${0##*/}" "$@"
これはシェルを起動し、その中に組み込まれたコマンドを実行することです。
他のシステム(GNUなど)はユーティリティを実際の実行可能なコマンドとして扱うため、動作がシェルの組み込みバージョンと異なる場合に混乱を招く可能性があります。