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
pwd
zaman 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_command
diske 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]#
PS1
bash özgü?
~/.profile
veya ~/.bash_profile
güncelleyeceğiniz gibi/etc/skel/.profile