既存のディレクトリへのシンボリックリンク


12

ターゲットが既に存在するという事実を考慮し/home/user/app/public/home/user/public_html、にリンクする適切な方法はありますか?

そうした場合ln -s /home/user/app/public /home/user/public_html、私は最終的に持ってい/home/user/public_html/publicます。

などのアクションを逆にすることも可能だと思いますが、最終結果としてln -s /home/user/public_html /home/user/app/public回避する方法がわかりません/home/user/app/public/public_html

回答:


13

Lemmeはあなたの問題を正しい方法で理解しています

あなたのソースは/home/user/public_html、そこにファイルがあると思います。そして、このディレクトリへのリンクをに作成したいとします/home/user/app/public。このようにして、次のようにls /home/user/app/publicして、に存在するファイルを確認できます/home/user/public_html

これが正しい場合、ソースは/home/user/public_htmlで、ターゲットは/home/user/app/publicです。適切なコマンドは次のとおりです。

ln -s /home/user/public_html /home/user/app/public

/home/user/app/publicコマンドを入力する前に、それが有効なディレクトリまたはファイルでないことを確認してください。


3
これは古いものですが、ユーザーはあなたが説明することを正確に行う方法を尋ねたと思いますが、/ home / user / app / publicがすでに存在している可能性がある場合(これは、回答)。したがって、ユーザーが既存のターゲットをどのように処理するか(つまり、シンボリックリンクを作成する前にターゲットを削除せずにシンボリックリンクで上書きする方法)を正確に知りたいので、IMHOは元の質問に答えません。
-jotadepicas

-Tオプションを試してみてください:)
Milkmannetje 2018年

2

あなたの質問を正しく理解していれば、既存のターゲットへの対処方法を知りたいと思っていました。その場合は、2つのシナリオが考えられます。

1)既存のターゲットはファイルです。この場合、「-f」を使用してシンボリックリンクを強制的に作成できます。

2)既存のターゲットはディレクトリーです。この場合は、lnコマンドの現在の実装によって異なります。それあなたが言うようにそれらを複製する代わりに、ディレクトリへのシンボリックリンクが適切に処理されるようにする「-n」引数を利用可能にすることができます。

リファレンス:https : //unix.stackexchange.com/questions/207294/create-symlink-overwrite-if-one-exists


:コメントなしdownvote私はなぜだろstackoverflow.com/help/privileges/vote-downは
jotadepicas
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.