![なぜ「sudo bash && cd Desktop」はデスクトップフォルダにCDされないのですか? [コピー]](https://linux33.com/image/57500/%E3%81%AA%E3%81%9C%E3%80%8Csudo%20bash%20%26amp%3B%26amp%3B%20cd%20Desktop%E3%80%8D%E3%81%AF%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%81%ABCD%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
chmod 000
さまざまな項目を含む権限を持つフォルダがありますが、そのフォルダに入る方法はbash
。sudo
sudo bash
なぜ私はそれができないのですか&&
?cd
次のコマンドを使用してディレクトリに入りたいと思います。
sudo bash && cd desktop
~
これを実行すると、まだデフォルトのディレクトリにあります。
これを実行する必要があります
sudo bash
cd desktop
また、デスクトップはフォルダではなくデスクトップのサブフォルダですが、あまり関係ありません。とにかく同じだ。
答え1
それ以降の部分は現在シェルで実行され、実行している一部のパラメータは&&
渡されません。bash
sudo
試してみることもできます。
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ユースケースはベストプラクティスではない可能性があるため、他のソリューションを検討する必要があります。