なぜ「sudo bash && cd Desktop」はデスクトップフォルダにCDされないのですか? [コピー]

なぜ「sudo bash && cd Desktop」はデスクトップフォルダにCDされないのですか? [コピー]

chmod 000さまざまな項目を含む権限を持つフォルダがありますが、そのフォルダに入る方法はbashsudosudo bash

なぜ私はそれができないのですか&&cd次のコマンドを使用してディレクトリに入りたいと思います。

sudo bash && cd desktop

~これを実行すると、まだデフォルトのディレクトリにあります。

これを実行する必要があります

sudo bash
cd desktop

また、デスクトップはフォルダではなくデスクトップのサブフォルダですが、あまり関係ありません。とにかく同じだ。

答え1

それ以降の部分は現在シェルで実行され、実行している一部のパラメータは&&渡されません。bashsudo

試してみることもできます。

sudo bash -c 'cd desktop'

ただし、これはbash後で終了するため機能しませんcd desktop

あなたは試すことができます:

sudo sh -c 'cd desktop && exec bash'

desktopこれは「動作します」(つまり、Bashシェルでuid = 0のディレクトリにユーザーを配置します)。私は1つではなく2つの別々のコマンドを実行する方が良いです。

答え2

うまくいきますが、期待した方法ではありません。&&コマンドが完了するまで待ちます。このときの結果があれば、true次の命令が実行される。したがって、 を入力すると、bash && cd desktopまず bash シェルが表示されます。と入力すると、exit元のシェルに戻ります。それからディレクトリがデスクトップフォルダに変更されます。

私が説明した機能の場合、sudoは重要ではありません。あなたのsudoユースケースはベストプラクティスではない可能性があるため、他のソリューションを検討する必要があります。

関連情報