シンボリックリンクの削除 - ロジックと[複製]メソッド

シンボリックリンクの削除 - ロジックと[複製]メソッド

まず、皆さん、明けましておめでとうございます!私はUNIX \ Linuxに初めて遭遇し、誤って次のシンボリックリンクを作成しました。

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-enabled/phpmyadmin.confservice

正しい方法は何ですか削除それは何であり、その背後にある論理は何ですか? :

unlink ***something***フォルダ内でコマンドを実行し、そのフォルダに移動する必要があることを知っています/etc/apache2/conf-enabled/。だから、次のように尋ねます。

  1. 削除操作が2番目のパスに基づいていて、最初のパスでは実行されないのはなぜですか?

  2. 一般的にファイル名以外に別に書くべきことはありますか?

    • ダメージを与えるかと思います。

答え1

からman rm

rm ユーティリティは、リンクが参照するファイルではなくシンボリックリンクを削除します。

だからそれをやってくださいrm /etc/apache2/conf-enabled/phpmyadmin.confservice

man質問する前に、一般的なアドバイスと同様に、ユーティリティの使い方を学ぶ必要があります。これにより時間が節約され、多くを学ぶことができます。

ダメージを与えるかと思います。

私はこの気持ちをしっかり理解しています。また、私がよく理解していない新しいことをするときも同じです!解決策は、利用可能なテストファイルを作成することです。実際、一部のコマンドには、実際に実行せずに実行する手順を表示する「模擬実行」オプションもあります。

一般的にファイル名以外に別に書くべきことはありますか?

--- シンボリックリンクにどこに記録されていますか?実際、シンボリックリンクには、自分が指すファイルのパス(テキスト形式)のみが含まれます。次の手順でシンボリックリンクの内容を印刷できますreadlink my_link

答え2

シンボリックリンクは通常、次のように生成されます(ページ内man)。

ln -s target link_name

これはtarget、既存のエンティティ(ファイルまたはディレクトリなど)で、ターゲットファイルへlink_nameの(シンボル)リンク(ポインタまたはショートカットと呼ばれる場合)の名前です。

あなたの場合、ターゲット/etc/phpmyadmin/apache.confはPHP用の設定ファイルのように見えます。むしろ、これは/etc/apache2/conf-enabled/phpmyadmin.confservice作成中のシンボリックリンクです。

削除の問題について言えば、通常link_name提供されている2番目のパスは削除されますが、ln削除されませんtarget。これにより、元のリンクされたファイルが保持され、生成された新しい名前が「リンク解除」されます。あなたの場合、削除すると元の/etc/apache2/conf-enabled/phpmyadmin.confserviceプロフィールが維持されます/etc/phpmyadmin/apache.conf。必要に応じて、関連するターゲットを指す別のシンボリックリンクを作成できます。

最後に、シンボリックリンクを作成して削除すると、target「壊れたリンク」が形成されます。これにより、ls -lシンボリックリンクが赤で強調表示されます。シンボリックリンクを削除する目的は、禁止されている操作とはまったく異なることに注意してください。これは一般的なユースケースではありません。

答え3

詳細については、コメントのリンクをたどってください。しかし、質問に対する短い答えは、シンボリックリンクが他の項目へのショートカットと同じであるということです。 (2番目の方法ここにシンボリックリンクがあります)

だからショートカットを削除しても、元には何のダメージもありません。

ショートカット名は必要に応じて指定できます。

関連情報