Warum tippensudo cd was auch immerwird das Verzeichnis nicht geändert?
Antwort1
cd
ist ein Shell-Builtin. sudo
Funktioniert nur mit ausführbaren Dateien. Sie könnten das tun, sudo sh -c 'cd dirname'
aber sobald die Shell beendet wird, werden Sie in das Verzeichnis zurückgeführt, aus dem Sie gestartet sind. Wenn Sie sagen, was Sie erreichen möchten, kann ich Ihnen helfen, einen Weg zu finden, das zu tun.
Antwort2
Versuchen Sie stattdessen, sudo -s
eine Root-Shell zu starten und dann einfach cd
in das Verzeichnis zu wechseln.
Wenn Sie als Root fertig sind, drücken CtrlDoder geben Sie ein exit
.
Wie Arjan in seinem Kommentar unten andeutet, ist es wichtig zu wissen, dass man als Root leicht wesentliche Systemkomponenten beschädigen kann.Vorsichtig verwenden!
Antwort3
Sie können einfach su
Root werden und dann cd
so viel tun, wie Sie wollen ... Ich weiß, dass bereits eine Antwort akzeptiert wurde, aber wenn keine auf der Sudoers-Liste steht, ist dies die einzige Option.
Antwort4
Abhängig von Ihrem Betriebssystem gibt es zwei Möglichkeiten, warum es „nicht funktioniert“:
Wenn Ihr Betriebssystem POSIX verwendet,
sudo cd
führt die Ausführung zuexterner Befehl"cd" (normalerweise unter/usr/bin/cd
), um es in einem gegabelten Prozess als Root-Benutzer auszuführen. Dieser Prozess wechselt erfolgreich das Verzeichnis. Sobald dieser Prozess abgeschlossen ist, kehren Sie zu Ihrer normalen Shell zurück, die sich noch immer in dem Verzeichnis befindet, in dem sie gestartet wurde.Läuft also
sudo cd
ohne Fehler, ändert aber nicht das aktuelle Arbeitsverzeichnis Ihrer aktuellen Shell.(Referenz:diese Antwort)
Andernfalls
sudo cd
wird beim Ausführen Folgendes passieren. Ihr Computer durchsucht Ihren PATH und versucht, eine ausführbare Datei mit dem Namen "cd" zu finden. Er wird keine finden. (Nur dieIntegrierter Shell-Befehl„cd“ existiert, und das ist keine ausführbare Datei). Daher erhalten Sie einen Fehler. (Unter Ubuntu erhalte ich die Fehlermeldungsudo: cd: command not found
.)Läuft also
sudo cd
mit Fehler.