我有两个使用它的实例,我想知道每个实例的作用是什么:
service=~
mv ~/Desktop/Service$version.tgz $service
这个小波浪线起什么作用~
?
那么,那之后该怎么cd $service
办?
答案1
答案2
“波浪线”称为波浪符号。它用于指代您的主目录,在 Linux 上,是通常情况下 /home/username
。它也存储在$HOME
环境变量中。将 扩展~
到主目录的位置是 shell(如 zsh 或 bash)或文件管理器(如 Nautilus)的工作,而不是文件系统或操作系统本身的工作。
您还可以使用它来引用另一个用户的主目录。例如,如果另一个用户的用户名是bob
,您可以使用 来引用他们的主目录~bob
,它将扩展为/home/bob/
。
您给出的第一个示例将变量设置service
为~
,因此它对应于您的主目录。这相当于service=/home/username
或service=$HOME
。
第二个示例将文件~/Desktop/Service$version.tgz
(或/home/username/Desktop/Service$version.tgz
) 复制到/home/username
。此命令等效于:
mv ~/Desktop/Service$version.tgz ~
或者
mv ~/Desktop/Service$version.tgz $HOME
或者
mv ~/Desktop/Service$version.tgz /home/username/
第三个命令将当前工作目录 ( $PWD
) 更改为/home/username/
。这相当于:
cd /home/username/
或者
cd $HOME
答案3
在 #1 和 #2 中:~ 是您的主目录,因此如果您使用的是 qwerty,则可能是目录 /home/qwerty。因此请尝试ls ~
查看。
对于#1:在我看来,变量服务被定义为您的主目录。
这意味着在 #2 将 tgz 文件从桌面子目录移动到你的主目录后,#3 随后会更改到主目录。
答案4
我要在这里补充一点,〜user 还会扩展到 [用户] 的主目录,因此它不仅仅是你的自己的主目录。
例如:
[guy@abox anotherdir]$ cd ~
[guy@abox ~]$ pwd
/home/guy
[guy@abox ~]$ cd ~john
[guy@abox john]$ pwd
/home/john