这两个命令有什么区别:我在运行每一行之前都使用了
cd $HOME/directory/test/
。cd ~
cd /
cd ~/
cd -
cd --
cd /.
cd $HOME
cd $USR
cd
而且所有这些都有相同的行为。有什么区别?
cd $HOME/directory/test/
。cd ~
cd /
cd ~/
cd -
cd --
cd /.
cd $HOME
cd $USR
cd
而且所有这些都有相同的行为。有什么区别?
cd <dir>
用于切换目录到<dir>
。
~
表示$HOME
目录。/
表示根目录。~/
也表示$HOME
目录。唯一的区别是它明确地显示它是一个目录(以斜杠结尾)。cd ~/
、cd
、cd ~
和cd $HOME
都是完全相同的操作。cd -
将工作目录更改为上一个工作目录。$USER
和 $HOME
是环境变量
$USER
= 当前登录用户的名称。该变量由系统设置。您可能不应手动更改其值。(例如:myuser1)
$HOME
= 当前登录用户的主目录位置。(例如:/home/myuser1)
建议使用 cd "$HOME"
或 cd "$USER"
,以便在遇到空格等情况下为 cd
提供正确的输入。
//
被视为 /
。所以 cd//home
和 cd/home
是一样的。 - Pandyacd
到未定义的环境变量时会发生什么的信息。(该变量扩展为空字符串,并运行无参数的cd
命令,以更改为主目录。)这可能就是cd $USR
出现问题的原因,因为虽然USER
变量几乎总是定义的,但很少有定义USR
。 - Eliah Kagancd -
** 会带你回到上次工作的目录(由 $OLDPWD
指定)。它还会打印出旧目录的路径。..
指的是父目录;**cd ..
** 会将你移动到上一级目录。如果你之前正在父目录中工作,cd -
和 cd ..
都会产生相同的效果。 - Amal Muralicd ~
~
是一个缩写,表示“用户的主目录”。cd /
/
。这里没有什么特别的事情发生。cd ~/
cd -
cd
命令所在的目录。这是cd
命令的一个特殊情况:当其参数为-
时,执行此操作。cd --
大多数命令,包括 cd
,参数 --
表示其后的任何内容都将被视为操作数而不是选项。因此,例如 cd -- -P
表示切换到一个名为 -P
的目录,而 cd -P
则传递了 -P
选项(如果你要转换的路径通过符号链接,则会产生差异)。当 --
后没有参数时,--
不起作用;这个命令等同于普通的 cd
。而 cd
如果没有参数,则是 cd ~
的简写。
cd /.
cd /
,因为/.
和/
是同一个目录(.
通常单独使用,表示“当前目录”)。cd $HOME
cd "$HOME"
。cd $USR
USR
的变量,所以运行的命令只是cd
。$foo
在引号外会损坏包含空格或通配符\[*?
(以及某些shell配置下的其他字符)的字符串。 - Gilles 'SO- stop being evil'"$HOME"
始终表示调用用户的主目录。如果用户的主目录位于此位置(这在机构网络上并不总是情况),"/home/$USER"
也会执行相同的操作。除非您需要执行与特定安装设置相关的操作,否则/home/$USER
永远不正确。 - Gilles 'SO- stop being evil'