web-dev-qa-db-ja.com

Linuxで少し波線が何をするのですか?

私はそれが使用されている2つのインスタンスがあり、それぞれが何をしているのかと思っています:

  1. service=~

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

小さな波線は何ですか~ 行う?

その後、その後、cd $service 行う?

25
O_O

波状のものは「チルド」と呼ばれます。

ホームディレクトリに展開されます。

試す

echo ~
echo $HOME

どちらのステートメントも、ホームディレクトリを単独で1行に配置しています。

詳細は bash Tilde Expansion を参照してください。

45
Mikel

「波線」はチルドと呼ばれます。 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
36
Wuffers

#1と#2の両方で:〜はホームディレクトリであるため、qwertyの場合は、/ home/qwertyディレクトリになります。 ls ~ご覧ください。

#1の場合、変数serviceがホームディレクトリとして定義されているように見えます。

つまり、#2がtgzファイルをデスクトップサブディレクトリからホームディレクトリに移動した後、#3がホームディレクトリに移動します。

10
nomaderWhat

コマンドは以下を実行しているようです。

  1. たとえば、serviceという変数をホームフォルダーの場所に割り当てます。

    /home/user
    
  2. ファイルをデスクトップからホームディレクトリの最上位に移動します。次に例を示します。

    /home/user/Desktop/Service$version.tgz $service
    
  3. 次に、スクリプトはディレクトリをホームディレクトリの最上位に変更します。

したがって、スクリプトが実行しているのは、代わりにファイルを/home/userフォルダーに移動してデスクトップをクリーンアップすることだけです。

5
James

ここで、〜userも[user]のホームディレクトリに展開されるため、これはownホームディレクトリの単なるショートカットではありません。

例えば。:

[guy@abox anotherdir]$ cd ~ 
[guy@abox ~]$ pwd
/home/guy
[guy@abox ~]$ cd ~john
[guy@abox john]$ pwd
/home/john
1
Rooke