0

chrootbashスクリプト内で、ディレクトリとcdその直後の別のサブディレクトリに移動したいと思います。を介してこれを実行したいexec chroot [dir] cd [subdir]のですが、ファイルが見つかりませんというエラーが発生します。これは、cdコマンドが新しいディレクトリツリーにないためです。コマンドは通常シェルによって提供されますcdが、evalで子プロセスを開始することは避ける必要があります。

Linuxでシェルを必要とせずにディレクトリを変更する方法はありますか?Linuxに含まれているパッケージを探しましcdたが、coreutilsには含まれていません。ありがとうございました。

4

2 に答える 2

2

cdプログラムはありません。cdシェルに組み込まれています。シェルに自身の現在のディレクトリを変更させます。プロセスは他のプロセスの現在のディレクトリを変更できないため、cdプログラムは使用できません(別のプロセスで実行され、呼び出し元のプロセスには影響しません)。

于 2012-11-16T01:09:42.373 に答える
1

schrootプログラム/パッケージをインストールします。これには、ディレクトリを変更するオプションがあるようです。

-d, --directory=directory
    Change to directory inside the chroot before running the command or login shell.
于 2012-11-16T00:58:08.817 に答える