Po co wpisywać sudo cd, cokolwiek nie zmieni katalogu?
Po co wpisywać sudo cd, cokolwiek nie zmieni katalogu?
Odpowiedzi:
cdjest wbudowaną powłoką. sudodział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 pwdczy też by nie działało? (I zawsze zorientowali, że sudo cd ma pracę, ale nie jesteś tylko widząc wynik po sudozwrotów. Ale to był tylko dzikie przypuszczenie. Może ani cdnie pwdsą 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.)
pwdto także zewnętrzny plik wykonywalny, więc będzie działać. Zauważ, że w niektórych systemach istnieje cdplik wykonywalny, ale w większości jest on bezużyteczny. Nawiasem type -a cdmówiąc, spróbuj użyć o wiele bardziej informacyjnego niż which.
type -a cdpokazuje zarówno cd is a shell builtini cd is /usr/bin/cdna moim Macu. I podobnie dla pwdi echo. I oba, sudo pwdi sudo echo "Hello world"daj mi wynik. Jednak type -a returntylko daje return is a shell builtini sudo return 3pokazuje 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 cdpracy bez żadnego błędu? (Lub: jakiego systemu operacyjnego używa OP).
sudo sh -c 'cd dirname'nic dla mnie nie robi.
cdma prawdziwy . I nie może nic zrobić zamiast zawieść, gdy bieżąca powłoka nie ma cdpolecenia. 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 cdpolecenia zewnętrznego?
Zamiast tego spróbuj użyć sudo -sdo uruchomienia powłoki roota, a następnie po prostu cddo 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!