Po co wpisywać sudo cd, cokolwiek nie zmieni katalogu?
Po co wpisywać sudo cd, cokolwiek nie zmieni katalogu?
Odpowiedzi:
cd
jest wbudowaną powłoką. sudo
działa tylko z plikami wykonywalnymi. Możesz to zrobić, sudo sh -c 'cd dirname'
ale gdy tylko powłoka zostanie zamknięta, nastąpi powrót do katalogu, w którym zacząłeś. Jeśli powiesz, co chcesz osiągnąć, pomogę ci znaleźć sposób, aby to zrobić.
sudo pwd
czy też by nie działało? (I zawsze zorientowali, że sudo cd
ma pracę, ale nie jesteś tylko widząc wynik po sudo
zwrotów. Ale to był tylko dzikie przypuszczenie. Może ani cd
nie pwd
są w rzeczywistości wbudowane w Basha na Mac. Bieganie which cd
jest rzeczywiście mi dać rezultaty. Bieg sudo cd /
nie daje mi błędu, ale w rzeczywistości nie powoduje zmiany katalogu roboczego.)
pwd
to także zewnętrzny plik wykonywalny, więc będzie działać. Zauważ, że w niektórych systemach istnieje cd
plik wykonywalny, ale w większości jest on bezużyteczny. Nawiasem type -a cd
mówiąc, spróbuj użyć o wiele bardziej informacyjnego niż which
.
type -a cd
pokazuje zarówno cd is a shell builtin
i cd is /usr/bin/cd
na moim Macu. I podobnie dla pwd
i echo
. I oba, sudo pwd
i sudo echo "Hello world"
daj mi wynik. Jednak type -a return
tylko daje return is a shell builtin
i sudo return 3
pokazuje mi sudo: return: command not found
. Myślę więc, że pytanie brzmi: czy PO wyświetla komunikat o błędzie, czy też PO nie widzi cd
pracy bez żadnego błędu? (Lub: jakiego systemu operacyjnego używa OP).
sudo sh -c 'cd dirname'
nic dla mnie nie robi.
cd
ma prawdziwy . I nie może nic zrobić zamiast zawieść, gdy bieżąca powłoka nie ma cd
polecenia. Każda powłoka, która może być kiedykolwiek używana przez ludzi cd
, w tym /bin/sh
. Ale program, który jest widziany z jądra systemu operacyjnego, powłoka może być znacznie prostsza, nawet tylko kilka wierszy kodu. Zobacz Jaki jest sens cd
polecenia zewnętrznego?
Zamiast tego spróbuj użyć sudo -s
do uruchomienia powłoki roota, a następnie po prostu cd
do katalogu.
Gdy skończysz jako root, naciśnij CtrlDlub wpisz exit
.
Jak sugeruje Arjan w swoim komentarzu poniżej, ważne jest, aby pamiętać, że jako root można łatwo uszkodzić niezbędne komponenty systemu. Używaj ostrożnie!