这些命令有什么区别:我cd $HOME/directory/test/在运行每一行之前使用过:
cd ~
cd /
cd ~/
cd -
cd --
cd /.
cd $HOME
cd $USR
cd
Run Code Online (Sandbox Code Playgroud)
所有这些都做同样的行为。什么是区别?
Pan*_*dya 11
将cd <dir>目录更改为<dir>.
~表示$HOME目录/表示根目录 ~/也表示$HOME目录。唯一的区别是它明确显示它是一个目录(尾部斜杠)。cd ~/和cd和cd ~和cd $HOME都做完全一样的事情。cd -将工作目录更改为上一个工作目录。这些特殊符号“.” (点)和“..”(点点)[相对参数]:
“.” 符号表示当前目录,“..”符号表示当前目录的父目录。
$USER并且$HOME是环境变量
$USER= 当前登录用户的名称。该变量由系统设置。您可能不应该手动更改其值。(例如:myuser1)
$HOME = 当前登录用户的主目录的位置。(例如:/home/myuser1)
推荐使用cd "$HOME"or cd "$USER"so-thatcd在空间等的情况下得到正确的输入。
cd ~
Run Code Online (Sandbox Code Playgroud)
更改到您的主目录。~路径的开头是一个缩写,意思是“用户的主目录”。
cd /
Run Code Online (Sandbox Code Playgroud)
更改到根目录/。这里没什么特别的。
cd ~/
Run Code Online (Sandbox Code Playgroud)
尾随/没有任何区别。它强制~解释为目录,但cd无论如何都会这样做。(尾随/对指向目录的符号链接产生影响 - 比较ls -ld /var/spool/mail和ls -ld /var/spool/mail/。)
cd -
Run Code Online (Sandbox Code Playgroud)
更改到您在上一个cd命令之前所在的目录。这是cd命令的一个特例:当它的参数是 时-,它会这样做。
cd --
Run Code Online (Sandbox Code Playgroud)
对于包括 在内的大多数命令,cd参数--意味着之后出现的任何内容都将被视为操作数而不是选项。因此,例如cd -- -P意味着更改为名为 的目录-P,而cd -P传递-P选项(如果您更改的路径通过符号链接进行,则会有所不同)。当 之后没有参数时--,--不做任何事情;此命令等效于 plain cd。cd反过来,没有参数是cd ~.
cd /.
Run Code Online (Sandbox Code Playgroud)
等价于cd /, 因为/.与/(.本身最有用,表示“当前目录”)相同的目录。
cd $HOME
Run Code Online (Sandbox Code Playgroud)
更改到您的主目录。如果您的主目录路径包含空格或其他字符,则此操作将失败。始终在变量替换周围使用双引号: cd "$HOME"。
cd $USR
Run Code Online (Sandbox Code Playgroud)
很可能,这没有任何作用,因为USR您的 shell 中没有定义named 变量,因此运行的命令只是cd.