你为什么要运行CD。 做任何事之前?

在这个系统pipe理员的恐怖汇编中 ,其中一位作者写道,作为一个经验法则:

总是做一个cd . 在做任何事之前。

你为什么要这么做?

你没有。

至less不只是这样。 引用文件中的上一行非常重要:

  • 设置你的提示,每次你光盘做pwd
  • 总是做一个cd . 在做任何事之前。

这样,作为操作员,您在做任何重要的事情之前都要validation您当前的工作目录,因为每次更改都会打印出来。 cd . 否则没有任何意义。

这个“validation”是一件好事,你应该适应一种forms。 更多(恕我直言)这个主题的常见变化是总是在提示符打印出工作目录。

如果您的shell的当前工作目录被删除,则可能会丢失数据。

例如,

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

如果当前工作目录目录已被删除并重新创build,请键入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服务器上,我通过将“W”更改为“w”来修改/etc/bashrc的提示。

  [ "$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]#