私は走るgrep some-string -r . &
。 bkgで実行すると、cd
別のディレクトリに移動します。grep
ハードリンクが異なるように解釈されるようです.
。現在のディレクトリを変更する前後に何が起こりますか?元のディレクトリと新しいディレクトリが不完全にチェックされますか?
.
コマンドであるコマンドライン引数は、コマンド実行開始時にのみ逆参照されるのか、プログラムの実行中に使用されるたびに逆参照されるのか疑問に思います。
答え1
各プロセスには、プロセスの外部で変更できない独自の「現在の作業ディレクトリ」があります。
だからあなたがするとき
grep some-string -r . &
シェルがgrep
バックグラウンドで開始され、grep
現在の作業ディレクトリがシェルと同じ値で初期化されます。その瞬間。ここでgrep
定義されているのは、.
他のディレクトリではなく、独自の現在のディレクトリです。シェルは引数の解釈に参加しません。
後でシェルディレクトリを変更してもcd
影響はありませんgrep
。