ウェブサイト検索

シンボリック リンク Linux の削除または削除


Linux では、リンクは強力な概念です。シンボリック リンクは、別のファイルまたはディレクトリを参照するファイルです。リンク自体には、元のファイルのデータは含まれません。これは、同じファイルシステム内、異なるファイルシステム内、またはリモートファイルシステム内にあるかどうかにかかわらず、元のファイルの場所を指すだけです。

このガイドでは、Linux でのシンボリック リンクの削除を確認してください。

前提条件

シンボリックリンクはポインタファイルです。アクセスすると、元のファイルまたはディレクトリの場所にリダイレクトされます。したがって、ファイル許可のルールも同様に適用されます。シンボリックリンク上で何らかの操作を実行するには、ユーザー アカウントに親ディレクトリへの書き込み権限が必要です。そうしないと、シンボリック リンクを削除しようとするとエラーが発生します。

シンボリックリンクが使用されている場合、それを削除すると望ましくない問題が発生する可能性があります。したがって、シンボリックリンクを削除する前に、他のプログラムのワークフローに影響を与えていないことを確認してください。

シンボリックリンクの検出

シンボリック リンクが削除されても、元のファイルは影響を受けません。シンボリック リンクを削除することが目的の場合は、ターゲットが実際にシンボリック リンクであるかどうかを再確認することをお勧めします。

ファイル情報からシンボリック リンクを判断できます。

$ ls -l /usr/bin/java

ファイルのアクセス許可を確認してください。最初の文字は「l」で、それがシンボリック リンクであることを示します。出力の後半では、ファイルの元の場所も示されます。

シンボリックリンクの削除

シンボリックリンク自体はファイルです。シンボリックリンク ファイルを削除するだけでリンクを削除できます。あるいは、シンボリックリンクを検出して削除するための専用ツールもあります。

デモのために、ダミーのシンボリック リンクを作成しました。 Linux でシンボリック リンクを作成する方法について詳しく学習してください。

$ ls -l dummy_symlink.text

rm を使用してシンボリックリンクを削除する

rm コマンドは、システムからファイルとディレクトリを削除するための専用ツールです。シンボリックリンク自体はファイルであるため、rm コマンドを使用して削除できます。

次の rm コマンドはシンボリックリンクを削除します。

$ rm -v <symlink>

複数のシンボリックリンクを削除するには、複数のファイルを削除する場合と同様に rm を使用します。次のコマンド構造を使用します。

$ rm -v <symlink_1> <symlink_2>

対話モードでは、rm は各ファイルとディレクトリを削除する前に質問します。対話モードで rm を実行するには、「-i 」フラグを使用します。

$ rm -i <symlink>

ターゲットのシンボリックリンクがディレクトリの場合は、ディレクトリ名の末尾の「/」を避けてください。

$ rm -v <dir_symlink>

「/」を含めると、rm はそれがディレクトリであると想定します。 rm を実行してディレクトリを削除すると、元のディレクトリの内容も削除されます。シンボリックリンクを削除すると、おそらく予期した結果が得られません。

Unlink を使用したシンボリックリンクの削除

rm を使用する代わりに、unlink もシンボリック リンクを削除する効果的なツールです。これは、リンク (シンボリック リンクとハード リンクの両方) を削除するための専用ツールです。ただし、rm とは異なり、unlink は一度に 1 つのファイルの削除をサポートします。

シンボリック リンクを削除するには、次の unlink コマンドを使用します。

$ unlink <symlink>

シンボリックリンクがディレクトリ リンクの場合は、最後に「/」を追加しないでください。このツールではディレクトリを削除できません。

リンク切れ

シンボリック リンクは、元のファイルへのポインタです。元のファイルの作成時の場所を記憶します。元のファイルを別の場所に移動すると、シンボリック リンクが壊れて表示されます。

定期的にシンボリック リンクを使用している場合は、さまざまな壊れたシンボリック リンクに遭遇することがあります。壊れたシンボリック リンクは混乱を招き、望ましくない状況を引き起こす可能性があります。

壊れたリンクを見つける

特定のディレクトリの下で壊れたリンクを見つけるには、次のコマンドを実行します。

$ find <dir_broken_link> -xtype l

出力では、find コマンドにより、見つかった壊れたシンボリック リンクがすべてリストされます。

デフォルトでは、find はすべてのサブディレクトリを走査して壊れたシンボリックリンクを検索します。ただし、サブディレクトリ内に含まれるシンボリックリンクは除外できます。

$ find <dir_broken_link> -maxdepth 1 -xtype 1

壊れたリンクを削除する

find コマンドを使用すると、壊れたリンクを同時に削除できます。

$ find <dir_broken_link> -xtype l -delete

結論

シンボリック リンクは基本的にポインター ファイルなので、通常のファイルと同じように削除できます。あるいは、専用ツールを使用してシステムからシンボリックリンクを削除することもできます。重要な機能の一部であるシンボリック リンク (たとえば、ディレクトリ "/usr/bin" の下のシンボリック リンク) を削除していないことを確認してください。

ハードリンクを使用する必要がありますか?シンボリック リンクとは異なり、ハード リンクは、名前が示すように、より永続的です。ハードリンクとシンボリックリンクは概念は似ていますが、異なります。 Linux のハード リンクに関するこのガイドを確認してください。

快適なコンピューティングを!

関連記事: