GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでシンボリックリンクを削除(削除)する方法

シンボリックリンクは、シンボリックリンクとも呼ばれ、別のファイルまたはディレクトリを指す特殊なタイプのファイルです。これは、Windowsのショートカットのようなものです。シンボリックリンクは、同じまたは異なるファイルシステムまたはパーティション上のファイルまたはディレクトリを指すことができます。

このガイドでは、rmを使用してLinux/UNIXシステムでシンボリックリンクを削除(削除)する方法を説明します。 、unlink 、およびfind コマンド。

始める前に#

シンボリックリンクを削除するには、シンボリックリンクを含むディレクトリへの書き込み権限が必要です。そうしないと、「操作は許可されていません」というエラーが発生します。

シンボリックリンクを削除しても、それが指すファイルは影響を受けません。

ls -lを使用します 特定のファイルがシンボリックリンクであるかどうかを確認し、シンボリックリンクが指すファイルまたはディレクトリを検索するコマンド。

ls -l /usr/bin/python
lrwxrwxrwx 1 root root 9 Apr 16  2018 /usr/bin/python -> python2.7

最初の文字「l」は、ファイルがシンボリックリンクであることを示します。 「->」記号は、シンボリックリンクが指すファイルを示します。

rm コマンドは、指定されたファイルとディレクトリを削除します。

シンボリックリンクを削除するには、rmを呼び出します コマンドの後に引数としてシンボリックリンク名が続く:

rm symlink_name

成功すると、コマンドはゼロで終了し、出力を表示しません。

rmを使用 一度に複数のシンボリックリンクを削除できます。これを行うには、シンボリックリンクの名前をスペースで区切って引数として渡します。

rm symlink1 symlink2

シンボリックリンクを削除する前にプロンプ​​トを表示するには、-iを使用します オプション:

rm -i symlink_name

タイプを確認するにはy Enterを押します 。

rm: remove symbolic link 'symlink_name'? 

シンボリックリンクがディレクトリを指している場合は、/を追加しないでください 最後に末尾のスラッシュ。そうしないと、エラーが発生します:

rm symlink_to_dir/
rm: cannot remove 'symlink_to_dir/': Is a directory

引数の名前が/で終わる場合 、rm コマンドは、ファイルがディレクトリであると想定します。 -dなしで使用すると、エラーが発生します または-r オプション、rm ディレクトリを削除できません。

安全のため、-rは絶対に使用しないでください。 rmでシンボリックリンクを削除する場合のオプション 。たとえば、次のように入力した場合:

rm -f symlink_to_dir/

ターゲットディレクトリの内容が削除されます。

unlink コマンドは、指定されたファイルを削除します。 rmとは異なり 、unlink 単一の引数のみを受け入れます。

シンボリックリンクを削除するには、unlinkを実行します コマンドの後に引数としてシンボリックリンク名を続ける:

unlink symlink_name

コマンドが正常に実行されると、出力は表示されません。

/を追加しないでください unlinkのため、シンボリックリンク名の末尾にスラッシュが付いています ディレクトリを削除できません。

ソースファイルを削除するか、別の場所に移動すると、シンボリックファイルはぶら下がったままになります(壊れたままになります)。

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

find /path/to/directory -xtype l
/path/to/directory/symlink1
/path/to/directory/subdir/symlink2

このコマンドは、ディレクトリとそのサブディレクトリの下にあるすべての壊れたリンクを一覧表示します。

サブディレクトリに含まれているシンボリックリンクを除外する場合は、-maxdepth 1を渡します。 findのオプション :

find /path/to/directory -maxdepth 1 -xtype l
/path/to/directory/symlink1

壊れたシンボリックリンクを見つけたら、rmを使用して手動で削除できます。 またはunlink または、-deleteを使用します findのオプション コマンド:

find /path/to/directory -xtype l -delete

結論#

シンボリックリンクを削除するには、rmのいずれかを使用します またはunlink コマンドの後に引数としてシンボリックリンクの名前が続きます。ディレクトリを指すシンボリックリンクを削除するときは、シンボリックリンク名に末尾のスラッシュを追加しないでください。

ご質問やご意見がございましたら、お気軽にコメントをお寄せください。


Linux
  1. Linuxシンボリックリンクを更新する方法

  2. Linuxでハードリンクとシンボリックリンクを作成する方法

  3. シンボリックリンクをコピーするには?

  1. Linuxでファイルまたはディレクトリを削除(削除)する方法

  2. LinuxでVimの行を削除する方法

  3. Linuxでパーティションを削除する方法

  1. Lnコマンド:Linuxでシンボリックリンクを作成する方法

  2. Linuxでディレクトリを削除する方法

  3. Linuxでシンボリックリンクを作成する方法