O_O*_*O_O 25 linux command-line home-folder
我有两个使用它的实例,我想知道每个实例的作用:
service=~
mv ~/Desktop/Service$version.tgz $service
小精灵是~
做什么的?
那么,在那之后,该怎么cd $service
办?
Mik*_*kel 45
弯曲的东西被称为“波浪线”。
它扩展到您的主目录。
尝试
echo ~
echo $HOME
Run Code Online (Sandbox Code Playgroud)
这两个语句都将您的主目录单独放在一行上。
有关详细信息,请参阅bash 波浪号扩展。
Wuf*_*ers 36
“波浪线”被称为波浪线。它用于引用您的主目录,在 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 ~
Run Code Online (Sandbox Code Playgroud)
或者
mv ~/Desktop/Service$version.tgz $HOME
Run Code Online (Sandbox Code Playgroud)
或者
mv ~/Desktop/Service$version.tgz /home/username/
Run Code Online (Sandbox Code Playgroud)
第三个会将当前工作目录 ( $PWD
)更改为/home/username/
. 这相当于:
cd /home/username/
Run Code Online (Sandbox Code Playgroud)
或者
cd $HOME
Run Code Online (Sandbox Code Playgroud)
小智 10
在#1 和#2 中:~ 是您的主目录,因此如果您是 qwerty,它可能是目录 /home/qwerty。所以试着ls ~
看看。
对于#1:在我看来,变量服务被定义为您的主目录。
这意味着在 #2 将 tgz 文件从 Desktop 子目录移动到您的主目录后,#3 然后更改到主目录。
小智 5
看起来命令正在执行以下操作。
将名为 service 的变量分配给您的主文件夹位置,例如:
/home/user
Run Code Online (Sandbox Code Playgroud)它将文件从桌面移动到主目录的顶层,例如:
/home/user/Desktop/Service$version.tgz $service
Run Code Online (Sandbox Code Playgroud)然后脚本将目录更改为主目录的顶级。
因此,所有脚本所做的只是通过将文件移动到您的/home/user
文件夹来清理您的桌面。