Em esta compilação de horrores sysadmin , um dos autores escreve, como uma regra de ouro:
Sempre faça um
cd .
antes de fazer qualquer coisa.
Por que você gostaria de fazer isso?
Em esta compilação de horrores sysadmin , um dos autores escreve, como uma regra de ouro:
Sempre faça um
cd .
antes de fazer qualquer coisa.
Por que você gostaria de fazer isso?
Respostas:
Você não
Pelo menos não apenas assim. A linha anterior no documento citado é importante:
- Configure seu prompt para fazer
pwd
sempre que você fizer um cd.- Sempre faça um
cd .
antes de fazer qualquer coisa.
Dessa forma, você como operador verifica seu diretório de trabalho atual antes de fazer qualquer coisa importante, pois é impresso a cada alteração. cd .
não faz sentido de outra maneira.
Essa "verificação" é uma coisa boa e você deve adaptar uma forma dela. Uma variação mais comum (IMHO) desse tema é sempre imprimir o diretório de trabalho no prompt.
pwd
antes de fazer qualquer coisa?
cd .
isso mudaria o subjacente real diretório em que você está.
cd .
mas antes de fazer qualquer outra coisa. Apenas reduz a probabilidade de estar no diretório errado, mas não resolve o problema geral. A menos que você mude para o diretório real usando algo como, cd $(readlink -f .)
dado que você realmente deseja ficar lá.
Se o diretório de trabalho atual do seu shell for removido, é possível perder dados.
Por exemplo,
$ 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>
A saída de some_command
não foi gravada no disco.
Digitar cd .
antes de executar um comando revelaria o problema.
$ pwd
/home/user/test
$ rmdir /home/user/test
$ cd .
$ pwd
.
Se o diretório do diretório de trabalho atual fosse removido e recriado, a digitação cd .
"atualizaria" a referência a esse diretório.
$ 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
Eu acho que é mais importante mostrar seu diretório atual.
Em todos os servidores Linux, modifico o prompt /etc/bashrc
alterando "W" para "w".
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
para
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \w]\\$ "
O efeito disso é:
[root@xt include]#
versus
[root@xt /usr/src/spl-0.6.1/include]#
PS1
específico do bash?
~/.profile
ou ~/.bash_profile
, bem como a atualização/etc/skel/.profile