web-dev-qa-db-ja.com

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

ターゲットがすでに存在するという事実を考慮して、/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を回避する方法はわかりません。

9
user2094178

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が有効なディレクトリまたはファイルではないことを確認してから、コマンドを入力してください。

10
Lucio

あなたの質問を正しく理解していれば、既存のターゲットをどのように扱うかを知りたいと思っていました。その場合、2つのシナリオが考えられます。

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

2)既存のターゲットはディレクトリです。この場合、lnコマンドの現在の実装に依存します。 couldには「-n」引数があります。これにより、ディレクトリへのシンボリックリンクが、あなたが言うように複製するのではなく、適切に処理されます。

参照: https://unix.stackexchange.com/questions/207294/create-symlink-overwrite-if-one-exists

1
jotadepicas