Neden sudo cd yazarsak dizini değiştiremezsin?
Neden sudo cd yazarsak dizini değiştiremezsin?
Yanıtlar:
cd
yerleşik bir kabuktur. sudo
sadece çalıştırılabilirlerle çalışır. Yapabilirsin sudo sh -c 'cd dirname'
ama kabuk çıkar çıkmaz, başladığın dizine geri dönersin. Neyi başarmaya çalıştığınızı söylerseniz, bunu yapmanın bir yolunu bulmanıza yardımcı olabilirim.
sudo pwd
da işe yaramayacak mıydı? (Hep bunu düşündüm sudo cd
yapar işi, ancak hemen sonra sonuç görmüyoruz sudo
getiri. Ama bu sadece bir tahmin. Belki de değildi, cd
ne de pwd
aslında yerleşik Bash Mac. Running Hangi which cd
yok aslında bana sonuçları verir. Koşu sudo cd /
bana bir hata vermez, ama gerçekten de değişen bir çalışma diziniyle sonuçlanmaz.)
pwd
Ayrıca harici bir çalıştırılabilir olduğundan çalışacaktır. Bazı sistemlerde cd
çalıştırılabilir bir dosya olduğunu unutmayın, ancak çoğunlukla işe yaramaz. Bu arada, type -a cd
çok daha bilgilendirici kullanmayı deneyin which
.
type -a cd
Her iki gösterir cd is a shell builtin
ve cd is /usr/bin/cd
benim Mac üzerinde. Ve aynı şekilde pwd
ve echo
. Ve her ikisi de sudo pwd
ve sudo echo "Hello world"
bana bir sonuç vermek yok. Ancak, type -a return
sadece verim return is a shell builtin
ve sudo return 3
bana gösterir sudo: return: command not found
. Öyleyse, sanırım soru şudur: OP bir hata mesajı alıyor mu, yoksa OP cd
herhangi bir hata yapmadan işi görmüyor mu? (Veya: OP kullanan OP nedir?)
sudo sh -c 'cd dirname'
benim için hiçbir şey yapmaz.
cd
. Ve mevcut kabuğun bir cd
komutu olmadığında başarısızlık yerine hiçbir şey yapamaz . Hiç insanlar tarafından kullanılıyor olabilir Herhangi kabuk vardır cd
dahil /bin/sh
. Ancak işletim sistemi çekirdeğinden görülen bir kabuk , sadece birkaç satır koddan bile daha basit olabilir. Bkz . cd
Harici komutun amacı nedir ?
Bunun yerine, sudo -s
bir kök kabuğunu başlatmak için kullanmayı ve ardından cd
dizine girmeyi deneyin .
Kök olarak işiniz bittiğinde, tuşuna basın CtrlDveya yazın exit
.
Arjan aşağıdaki yorumunda işaret ettiğinden, kök olarak, temel sistem bileşenlerine kolayca zarar verebileceğini not etmek önemlidir. Dikkatli kullanın!