这些命令有什么区别?

这些命令有什么区别:我在运行每一行之前使用了cd $HOME/directory/test/

 cd ~ cd / cd ~/ cd - cd -- cd /. cd $HOME cd $USR cd 

所有这些行为都是一样的。 有什么区别?

简单命令cd

将目录更改为

  • ~表示$HOME目录
  • /表示根目录
  • ~/表示$HOME目录。 唯一的区别是它明确地显示它是一个目录(尾部斜杠)。 cd ~/cdcd ~cd $HOME都做同样的事情。
  • cd -将工作目录更改为上一个工作目录

这些特殊符号“。” (点)和“..”(点点) [相对参数]

“。” symbol表示当前目录,“..”符号表示当前目录的父目录。


$USER$HOME是环境变量

$USER =当前登录$USER的名称。 该变量由系统设置。 您可能不应手动​​更改其值。 (例如:为MyUser1)

$HOME =当前登录用户主目录的位置。(例如:/ home / myuser1)

建议使用cd "$HOME"cd "$USER"以便在空间等情况下获得正确的输入。

 cd ~ 

对主目录的更改。 ~在路径的开头是缩写,意思是“用户的主目录”。

 cd / 

对根目录的更改/ 。 这里没什么特别的。

 cd ~/ 

尾随/没有任何区别。 它强制~被解释为一个目录,但无论如何cd都会这样做。 (尾随/对目录的符号链接有所不同 – 比较ls -ld /var/spool/maills -ld /var/spool/mail/ 。)

 cd - 

对上一个cd命令之前所在目录的更改。 这是cd命令的一个特例:当它的参数是- ,它就是这样做的。

 cd -- 

对于大多数命令,包括cd ,参数--意味着之后出现的任何内容都将被视为操作数而不是选项。 因此,例如cd -- -P表示更改为名为-P的目录,而cd -P传递-P选项(如果您更改的路径通过符号链接传递,则会产生差异)。 如果--之后没有争论,那么--什么都不做; 这个命令相当于普通的cd 。 反过来, cd没有参数是cd ~的快捷方式。

 cd /. 

相当于cd / ,因为/./.目录大多相同,目的是“当前目录”)。

 cd $HOME 

对主目录的更改。 如果主目录的路径包含空格或其他字符,则会失败。 始终在变量替换周围使用双引号 : cd "$HOME"

 cd $USR 

很可能,这没有任何作用,因为在shell中没有定义名为USR变量,因此运行的命令只是cd