アンドロイド

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

目次:

Anonim

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

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

あなたが始める前に

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

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

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

ls -l /usr/bin/python

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

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

rm シンボリックリンクを削除する

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 がディレクトリを削除できないために発生します。

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

rm -f symlink_to_dir/

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

unlink シンボリックリンクを削除する

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

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

unlink symlink_name

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

unlink はディレクトリを削除できないため、symlink名の最後に / の最後のスラッシュを追加しないでください。

壊れたシンボリックリンクの検索と削除

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

find /path/to/directory -xtype l

/path/to/directory/symlink1 /path/to/directory/subdir/symlink2

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

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

/path/to/directory/symlink1

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

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

結論

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

rm unlink findターミナル