Tại sao gõ sudo cd bất cứ điều gì sẽ không thay đổi thư mục?
Tại sao gõ sudo cd bất cứ điều gì sẽ không thay đổi thư mục?
Câu trả lời:
cd
là một vỏ dựng sẵn. sudo
chỉ hoạt động với thực thi. Bạn có thể làm sudo sh -c 'cd dirname'
nhưng ngay khi thoát khỏi trình bao, bạn sẽ quay trở lại thư mục bạn đã bắt đầu. Nếu bạn nói những gì bạn đang cố gắng thực hiện thì tôi có thể giúp bạn tìm ra cách để làm điều đó.
sudo pwd
cũng không hoạt động? (Tôi luôn hình dung rằng sudo cd
không làm việc, nhưng bạn chỉ cần không nhìn thấy kết quả sau khi sudo
trở về. Nhưng đó chỉ là một đoán hoang dã. Có lẽ không phải cd
và cũng không pwd
thực sự tích hợp sẵn trong Bash trên Chạy. Mac which cd
không thực sự cho tôi kết quả. Chạy sudo cd /
không cho tôi một lỗi, nhưng thực sự không dẫn đến một thư mục làm việc đã thay đổi.)
pwd
cũng là một tệp thực thi bên ngoài nên nó sẽ hoạt động. Lưu ý rằng trên một số hệ thống, có một cd
tệp thực thi, nhưng nó hầu như vô dụng. Nhân tiện, hãy thử sử dụng type -a cd
nó nhiều thông tin hơn which
.
type -a cd
hiển thị cả cd is a shell builtin
và cd is /usr/bin/cd
trên máy Mac của tôi. Và tương tự như vậy cho pwd
và echo
. Và cả hai sudo pwd
và sudo echo "Hello world"
làm cho tôi một kết quả. Tuy nhiên, type -a return
chỉ mang lại sản lượng return is a shell builtin
, và sudo return 3
cho tôi thấy sudo: return: command not found
. Vì vậy, tôi đoán câu hỏi là: OP có nhận được thông báo lỗi không, hoặc OP không thấy cd
công việc mà không có lỗi? (Hoặc: OP sử dụng hệ điều hành nào.)
sudo sh -c 'cd dirname'
không làm gì cho tôi
Thay vào đó hãy thử sử dụng sudo -s
để bắt đầu một shell root và sau đó chỉ cần cd
vào thư mục.
Khi bạn hoàn thành root, nhấn CtrlDhoặc gõ exit
.
Như Arjan gợi ý trong nhận xét của mình dưới đây, điều quan trọng cần lưu ý là khi root, người ta có thể dễ dàng gây thiệt hại cho các thành phần hệ thống thiết yếu. Sử dụng cẩn thận!
Bạn có thể chỉ cần su
trở thành root và sau đó là cd
tất cả những gì bạn muốn ... Tôi biết một câu trả lời đã được chấp nhận, nhưng nếu nó không có trong danh sách sudoers thì đây là lựa chọn duy nhất.