- PR -

UNIXコマンドの「cd」

1
投稿者投稿内容
すぎぼー
会議室デビュー日: 2006/01/10
投稿数: 7
投稿日時: 2006-08-02 21:03
こんにちは、いつもお世話になっております。

ご質問させ頂きます。
Cシェル(csh)上に、/usr/bin/cdと書くと、チェンジディレクトリがうまくいかず、普通にcd〜〜と書くと正しくチェンジディレクトリされます。
他のコマンドは、/usr/bin/〜〜で正しく実行されるのですが、cdコマンドのみうまくいきません。
/usr/bin配下にはcdはあります。

説明が下手で、申し訳ないですが、どなたか原因がわかる方、ご指摘いただけませんでしょうか?宜しくお願い致します。
Java僧
ぬし
会議室デビュー日: 2003/11/06
投稿数: 261
投稿日時: 2006-08-02 22:16
なぜ、投稿先が「Windows Server Insider 会議室」なんでしょうか?

通常(?)cdはシェルのビルトインコマンドです。
詳しくは"man csh"。

しかし、なぜ/usr/binにcdがあるのか気になります。
まさかトロイの木馬では・・・
coasm
大ベテラン
会議室デビュー日: 2001/11/26
投稿数: 237
投稿日時: 2006-08-02 22:22
「カレントディレクトリ」はプロセス毎に管理されています。

・cshが、/usr/bin/cdを子プロセスとして起動する。
・起動された子プロセスは、自分のカレントディレクトリを変更して、終了する。
・元のcshのカレントディレクトリは変わらない。

という動きになります。

shellのカレントディレクトリを変更したいのなら、組み込みコマンドを使わないとダメです。

# にもかかわらず外部コマンドのcdを持っているUnixがあるのは何故だろう?
# joke ?
1

スキルアップ/キャリアアップ(JOB@IT)