这些命令有什么区别?
这些命令有什么区别:我在运行每一行之前使用了cd $HOME/directory/test/
:
cd ~ cd / cd ~/ cd - cd -- cd /. cd $HOME cd $USR cd
所有这些行为都是一样的。 有什么区别?
简单命令cd
将目录更改为
。
-
~
表示$HOME
目录 -
/
表示根目录 -
~/
表示$HOME
目录。 唯一的区别是它明确地显示它是一个目录(尾部斜杠)。cd ~/
和cd
和cd ~
和cd $HOME
都做同样的事情。 -
cd -
将工作目录更改为上一个工作目录 。
这些特殊符号“。” (点)和“..”(点点) [相对参数] :
“。” symbol表示当前目录,“..”符号表示当前目录的父目录。
$USER
和$HOME
是环境变量
$USER
=当前登录$USER
的名称。 该变量由系统设置。 您可能不应手动更改其值。 (例如:为MyUser1)
$HOME
=当前登录用户主目录的位置。(例如:/ home / myuser1)
建议使用cd "$HOME"
或cd "$USER"
以便在空间等情况下获得正确的输入。
cd ~
对主目录的更改。 ~
在路径的开头是缩写,意思是“用户的主目录”。
cd /
对根目录的更改/
。 这里没什么特别的。
cd ~/
尾随/
没有任何区别。 它强制~
被解释为一个目录,但无论如何cd
都会这样做。 (尾随/
对目录的符号链接有所不同 – 比较ls -ld /var/spool/mail
和ls -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
。