Bu sysadmin dehşetlerinin derlenmesinde yazarlardan biri, genel bir kural olarak yazıyor:
Bir
cd .şey yapmadan önce her zaman bir yap .
Bunu neden yapmak istiyorsun?
Bu sysadmin dehşetlerinin derlenmesinde yazarlardan biri, genel bir kural olarak yazıyor:
Bir
cd .şey yapmadan önce her zaman bir yap .
Bunu neden yapmak istiyorsun?
Yanıtlar:
Sen değil.
En azından sadece böyle değil. Alıntılanan belgede bulunan önceki satır önemlidir:
- Her
pwdzaman cd yapmak için istemi ayarlayın .- Bir
cd .şey yapmadan önce her zaman bir yap .
Bu sayede, operatör olarak, her değişiklikle birlikte yazdırıldığı gibi, önemli bir şey yapmadan önce mevcut çalışma yönünüzü doğrularsınız. cd .başka türlü bir şey ifade etmiyor.
Bu "doğrulama" iyi bir şeydir ve bunun bir şeklini uyarlamanız gerekir. Bu temanın daha fazla (IMHO) ortak bir çeşidi , komut isteminde daima çalışan dizini yazdırmaktır.
pwdşey yapmadan önce yapmıyorsun?
cd .gerçek durumun değişmesine neden olur. içinde bulunduğunuz dizini.
cd . ancak önce başka bir şey yapıyor. Sadece yanlış dizinde olma olasılığını azaltır, fakat genel sorunu çözmez. Gerçek dizine cd $(readlink -f .)geçmeden, aslında orada kalmak istediğin gibi bir şeyi kullanarak .
Kabuğunuzun geçerli çalışma dizini kaldırılırsa, veri kaybı mümkündür.
Örneğin,
$ pwd
/home/user/test
$ rmdir /home/user/test
$ pwd
/home/user/test
$ some_command | tee command.log
tee: command.log: No such file or directory
<long output>
Çıktısı some_commanddiske yazılmadı.
cd .Bir komutu çalıştırmadan önce yazmak sorunu ortaya çıkarır.
$ pwd
/home/user/test
$ rmdir /home/user/test
$ cd .
$ pwd
.
Geçerli çalışma dizini dizini kaldırılmış ve yeniden oluşturulmuşsa, yazmak cd .o dizine yapılan referansı "yenileyecektir".
$ ls
foo bar ljz
$ pwd
/home/user/test
$ rmdir /home/user/test
$ mkdir /home/user/test
$ pwd
/home/user/test
$ ls
$ cd .
$ ls
foo bar ljz
Geçerli dizini göstermenin daha önemli olduğunu düşünüyorum.
Her linux sunucusunda /etc/bashrc"W" yi "w" olarak değiştirerek istemde değişiklik yapıyorum .
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
için
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \w]\\$ "
Bunun etkisi:
[root@xt include]#
e karşı
[root@xt /usr/src/spl-0.6.1/include]#
PS1bash özgü?
~/.profileveya ~/.bash_profilegüncelleyeceğiniz gibi/etc/skel/.profile