私はそれが使用されている2つのインスタンスがあり、それぞれが何をしているのかと思っています:
service=~
mv ~/Desktop/Service$version.tgz $service
小さな波線は何ですか~
行う?
その後、その後、cd $service
行う?
波状のものは「チルド」と呼ばれます。
ホームディレクトリに展開されます。
試す
echo ~
echo $HOME
どちらのステートメントも、ホームディレクトリを単独で1行に配置しています。
詳細は bash Tilde Expansion を参照してください。
「波線」はチルドと呼ばれます。 Linuxでは通常/home/username
であるホームディレクトリを参照するために使用されます。また、$HOME
環境変数にも格納されます。 ~
をホームディレクトリの場所に展開するのは、シェル(zshやbashなど)またはファイルマネージャー(Nautilusなど)の仕事であり、ファイルシステムやOS自体ではありません。
これを使用して、別のユーザーのホームディレクトリを参照することもできます。たとえば、他のユーザーのユーザー名がbob
の場合、~bob
でホームディレクトリを参照できます。これは/home/bob/
に展開されます。
最初の例では、変数service
を~
に設定しているため、ホームディレクトリに対応しています。これは、service=/home/username
またはservice=$HOME
と同等です。
2番目の例では、ファイル~/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/
3番目は、現在の作業ディレクトリ($PWD
)を/home/username/
に変更します。これは次と同等です。
cd /home/username/
または
cd $HOME
#1と#2の両方で:〜はホームディレクトリであるため、qwertyの場合は、/ home/qwertyディレクトリになります。 ls ~
ご覧ください。
#1の場合、変数serviceがホームディレクトリとして定義されているように見えます。
つまり、#2がtgzファイルをデスクトップサブディレクトリからホームディレクトリに移動した後、#3がホームディレクトリに移動します。
コマンドは以下を実行しているようです。
たとえば、serviceという変数をホームフォルダーの場所に割り当てます。
/home/user
ファイルをデスクトップからホームディレクトリの最上位に移動します。次に例を示します。
/home/user/Desktop/Service$version.tgz $service
次に、スクリプトはディレクトリをホームディレクトリの最上位に変更します。
したがって、スクリプトが実行しているのは、代わりにファイルを/home/user
フォルダーに移動してデスクトップをクリーンアップすることだけです。
ここで、〜userも[user]のホームディレクトリに展開されるため、これはownホームディレクトリの単なるショートカットではありません。
例えば。:
[guy@abox anotherdir]$ cd ~
[guy@abox ~]$ pwd
/home/guy
[guy@abox ~]$ cd ~john
[guy@abox john]$ pwd
/home/john