In questa raccolta di orrori del sysadmin , uno degli autori scrive, come regola generale:
Fai sempre un
cd .
prima di fare qualsiasi cosa.
Perché vorresti farlo?
In questa raccolta di orrori del sysadmin , uno degli autori scrive, come regola generale:
Fai sempre un
cd .
prima di fare qualsiasi cosa.
Perché vorresti farlo?
Risposte:
Non
Almeno non proprio così. La riga precedente nel documento citato è importante:
- Imposta il tuo prompt per fare
pwd
ogni volta che fai un cd.- Fai sempre un
cd .
prima di fare qualsiasi cosa.
In questo modo, come operatore, verifichi la directory di lavoro corrente prima di fare qualcosa di importante, poiché viene stampato con ogni modifica. cd .
non ha alcun senso altrimenti.
Questa "verifica" è una buona cosa e dovresti adattarne una forma. Una variante più (IMHO) comune di questo tema è quella di stampare sempre la directory di lavoro al prompt.
pwd
prima di fare qualcosa?
cd .
farebbe cambiare il sottostante directory in cui ti trovi.
cd .
ma prima di fare qualsiasi altra cosa. Riduce solo la probabilità di trovarsi nella directory sbagliata, ma non risolve il problema generale. A meno che non passi alla directory reale usando qualcosa di simile cd $(readlink -f .)
dato che in realtà vuoi rimanere lì.
Se l'attuale directory di lavoro della shell viene rimossa, è possibile perdere dati.
Per esempio,
$ 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>
L'output di some_command
non è stato scritto sul disco.
Digitare cd .
prima di eseguire un comando rivelerebbe il problema.
$ pwd
/home/user/test
$ rmdir /home/user/test
$ cd .
$ pwd
.
Se la directory corrente della directory di lavoro fosse rimossa e ricreata, digitando cd .
si "aggiorna" il riferimento a quella directory.
$ 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
Penso che sia più importante mostrare la tua directory attuale.
Su ogni server Linux, modifico il prompt /etc/bashrc
cambiando "W" in "w".
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
a
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \w]\\$ "
L'effetto di questo è:
[root@xt include]#
contro
[root@xt /usr/src/spl-0.6.1/include]#
PS1
specifico per bash?
~/.profile
o ~/.bash_profile
oltre all'aggiornamento/etc/skel/.profile