Linux 中的小波浪线 ~ 起什么作用?

Linux 中的小波浪线 ~ 起什么作用?

我有两个使用它的实例,我想知道每个实例的作用是什么:

  1. service=~

  2. mv ~/Desktop/Service$version.tgz $service

这个小波浪线起什么作用~

那么,那之后该怎么cd $service办?

答案1

这个波浪形的东西被称为“波浪号”。

它会扩展到您的主目录。

尝试

echo ~
echo $HOME

这两个语句都将您的主目录单独放在一行上。

bash 波浪号扩展了解详情。

答案2

“波浪线”称为波浪符号。它用于指代您的主目录,在 Linux 上,是通常情况下 /home/username。它也存储在$HOME环境变量中。将 扩展~到主目录的位置是 shell(如 zsh 或 bash)或文件管理器(如 Nautilus)的工作,而不是文件系统或操作系统本身的工作。

您还可以使用它来引用另一个用户的主目录。例如,如果另一个用户的用户名是bob,您可以使用 来引用他们的主目录~bob,它将扩展为/home/bob/

您给出的第一个示例将变量设置service~,因此它对应于您的主目录。这相当于service=/home/usernameservice=$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

相关内容