/usr/bin/env を使用してディレクトリを変更する

/usr/bin/env を使用してディレクトリを変更する

プレフィックス付きのコマンドを自動的に実行したい/usr/bin/env

$/usr/bin/env composer install (this runs OK)
$/usr/bin/env cd public (failed ---> /usr/bin/env: cd: No such file or directory)

私は Linux 初心者ですが、 を使用するのは/usr/bin/envコマンドを記述する奇妙な方法だと思います。2 行目が機能しないのはなぜでしょうか ( や など、いくつかは機能しましたがmkdir) ls

を削除できない理由は/usr/bin/env、Capistrano を使用しており、プレフィックスが先頭に追加され続けるからです。 を削除する方法があれば/usr/bin/env、さらに良いでしょう。

よろしくお願いします。

答え1

env cd /path/to/directoryシステムで呼び出されるプログラムがないため、実行できませんcd。プロセスは、システム コールを使用して作業ディレクトリを変更できます。シェルでは、組み込みコマンドを使用できますcd。から呼び出してもenv意味がありません。作業ディレクトリを変更した直後に終了する新しいプロセスが作成されるためです。新しいenvプロセスは、標準的な方法では呼び出しプロセスの作業ディレクトリを変更できません。

関連情報