Hvorfor sudo cd ikke ændrer biblioteket - Løsninger og forklaringer

Hvorfor ændrer kommandoen sudo cd whatever ikke biblioteket?

Kommandoen "sudo cd whatever" ændrer ikke biblioteket, fordi "cd" er en shell-indbygget kommando, og "sudo" starter en ny proces, der ikke påvirker den oprindelige shell. For at ændre biblioteket med root-rettigheder kan du bruge "sudo -i" eller "sudo su" for at skifte til en root-shell.

Hvorfor ændrer kommandoen sudo cd whatever ikke biblioteket?

Kommandoen sudo cd whatever ændrer ikke biblioteket af flere grunde:

  • Shell Built-in Kommando: Kommandoen cd er en indbygget kommando i shell (f.eks. bash eller zsh). Når du bruger sudo, starter det en ny proces som root-bruger, men denne proces arver ikke den nuværende shell's miljø.
  • Ny Proces: Når du kører sudo, oprettes en ny proces, og ændringer i denne proces påvirker ikke den oprindelige shell. Derfor vil cd kommandoen kun ændre biblioteket i den nye proces, som straks afsluttes efter udførelsen.
  • Begrænset Effekt: Selv hvis sudo cd kunne ændre biblioteket, ville det kun påvirke den midlertidige root-shell og ikke din nuværende bruger-shell.

For at ændre biblioteket med root-rettigheder kan du bruge følgende metoder:

  • Skift til Root Shell: Brug sudo -i eller sudo su for at skifte til en root-shell, og derefter kan du bruge cd kommandoen.
  • Brug af Skripter: Hvis du har brug for at køre flere kommandoer som root, kan du skrive et script og køre det med sudo.

Eksempel på skift til root-shell:

sudo -i
cd /desired/directory

Eksempel på brug af script:

#!/bin/bash
cd /desired/directory
# andre kommandoer

# Kør scriptet med sudo
sudo ./script.sh