あるフォルダーから別のフォルダーに異なる名前のシンボリックリンクを作成しますか?

あるフォルダーから別のフォルダーに異なる名前のシンボリックリンクを作成しますか?

フォルダーが 2 つあり、そのうちの 1 つは Web サーバーのルートです。Git で最新の状態に維持できるように、これをプロジェクト フォルダーにリンクしたいと考えています。

これを実行しようとすると:

ln -s /home/user/project  /var/www/html

システムは、プロジェクトhtmlフォルダ内にあり、それをリンクしています。ディレクトリ「html」が次のコンテンツを指すようにリンクする方法はありますか?プロジェクト? 同じ名前にする必要がありますか?

注記: いくつかの隠しファイルをリンクする必要もあります。 を使用してこれを行うことはできますかln?

答え1

からman ln

デフォルトでは、各宛先 (新しいリンクの名前) は存在してはなりません。

すでに という名前のディレクトリがあるため、ターゲットの名前 (つまり ) を持つhtmlリンクが内部に作成されます。/var/www/htmlproject

/var/www/htmlを指すシンボリックリンクを作成したい場合は、事前に/home/user/projectディレクトリを用意しないでください。そのため、ディレクトリを用意して、次のコマンドを実行すると、目的のシンボリックリンクが作成されます (確信が持てない限り、これを実行しないでください)。html/var/www

ln -s /home/user/project /var/www/html

注記: 末尾にスラッシュを使用すると ( のようにln -s /home/user/project /var/www/html/)、エラーが発生します: ln: target '/var/www/html' is not a directory: No such file or directory

次に例を示します。

$ pwd
/home/user/test/askubuntu

$ ls -l
total 4
drwxrwxr-x 2 user user 4096 Mar 25 00:16 foo

$ ln -s /home/user/test/bar /home/user/test/askubuntu/foo

$ ls -l
total 4
drwxrwxr-x 2 user user 4096 Mar 25 00:17 foo

$ cd foo/
$ ls -l
total 0
lrwxrwxrwx 1 user user 25 Mar 25 00:17 bar -> /home/user/test/bar

$ cd ..
$ rm -r foo/

$ ls -l
total 0

$ ln -s /home/user/test/bar /home/user/test/askubuntu/foo

$ ls -l
total 0
lrwxrwxrwx 1 user user 25 Mar 25 00:18 foo -> /home/user/test/bar

はい、隠しファイルのシンボリックリンクを作成できます。

答え2

の下に html ディレクトリが作成されていないことを確認してください/var/www/

コマンドは次のようになります。ln -s -T /home/user/project /var/www/html

関連情報