シェルは今いるディレクトリの場所、環境変数などの状態が保存されています。
この状態を引き継がずに新しい状態でコマンドを実行するには子シェルを使います。
現在のシェルには状態が保存されている
シェルには現在の状態が保存されています。
例えばディレクトリを変更するcdコマンドを使用すると現在のディレクトリの状態が保存されます。
# pwd
/root
→現在は/rootディレクトリにいるという状態が保存されている
# cd /var
→cdで/varに移動したという状態が保存された
子シェルを使うと別の環境で実行できる
一時的に別ディレクトリに移動してディレクトリをの状態でディレクトリを作成したいという場合に子シェルを使うとシェル起動時のディレクトリで実行できます
# cd /var
# ls
vardir/
# (cd /opt ; touch test)
丸括弧で括ると子シェル(別のシェル)で実行される
optに移動してtestというファイルを作る
# pwd
/var
→上では/optに移動しているけど子シェルの状態は今のシェル(親シェル)には影響しないので/varにいる状態のまま
# ls /opt/
test
⇨/optを見れば実際に/optにtestファイルはできている