Назад | Перейти на главную страницу

Зачем запускать cd. прежде чем что-нибудь делать?

В этот сборник ужасов сисадминаодин из авторов, как правило, пишет:

Всегда делай cd . прежде чем что-либо делать.

Почему вы хотите это сделать?

Вы этого не сделаете.

По крайней мере, не просто так. Предыдущая строка в цитируемом документе важна:

  • Настройте запрос на выполнение pwd каждый раз, когда вы cd.
  • Всегда делай cd . прежде чем что-либо делать.

Таким образом, вы как оператор проверяете свой текущий рабочий каталог, прежде чем делать что-либо важное, поскольку он распечатывается при каждом изменении. cd . иначе не имеет никакого смысла.

Эта «проверка» - хорошая вещь, и вам следует адаптировать ее форму. Более (IMHO) распространенный вариант этой темы - всегда распечатайте рабочий каталог по запросу.

Если текущий рабочий каталог вашей оболочки удален, можно потерять данные.

Например,

$ 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>

Выход some_command не было записано на диск.

Печатать cd . перед запуском команды выявит проблему.

$ pwd
/home/user/test
$ rmdir /home/user/test
$ cd .
$ pwd
.

Если текущий рабочий каталог был удален и создан заново, набрав cd . "обновит" ссылку на этот каталог.

$ 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

Я думаю, что важнее показать ваш текущий каталог.

На каждом сервере linux я изменяю приглашение в /etc/bashrc изменив "W" на "w".

 [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "

к

 [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \w]\\$ "

Эффект от этого:

[root@xt include]#

против

[root@xt /usr/src/spl-0.6.1/include]#