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

В этой компиляции ужасов sysadmin , один из авторы, как правило, пишут:

  

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

Зачем вам это нужно?

22 голоса | спросил qdii 30 J0000006Europe/Moscow 2013, 15:28:04

3 ответа


32

Нет.

По крайней мере, не так. Следующая строка в цитируемом документе имеет значение:

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

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

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

ответил Roman 30 J0000006Europe/Moscow 2013, 15:52:27
18

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

Например,

$ 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
ответил Smith John 30 J0000006Europe/Moscow 2013, 22:56:00
13

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

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

 [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\[email protected]\h \W]\\$ "

к

 [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\[email protected]\h \w]\\$ "

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

[[email protected] include]#

против

[[email protected] /usr/src/spl-0.6.1/include]# 
ответил ewwhite 30 J0000006Europe/Moscow 2013, 18:00:48

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132