这些命令有什么区别?

这些命令有什么区别?

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

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

所有这些都执行相同的行为。 有什么区别?

答案1

cd <dir>将目录更改为的简单命令<dir>

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

这些特殊符号“。”(点)和“.。”(点点)【相关参数】

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


$USER并且$HOME环境变量

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

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

建议使用cd "$HOME"或在有空格cd "$USER"cd的情况下获得正确的输入。

答案2

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

最有可能的是,这什么都不做,因为USR你的 shell 中没有定义名为的变量,因此运行的命令只是cd

相关内容