以前の記事で、Linuxのシンボリックリンクとは何かを説明しました。 Linuxで他のファイルへのショートカットを作成するには、シンボリックリンクまたはシンボリックリンクまたはソフトリンクが使用されます。シンボリックリンクは、Linuxのライブラリをリンクする際に頻繁に使用されます。
リンクポインティング先の元のファイルを削除すると、リンクがぶら下がりリンクになります。そのようなリンクを維持することは良い考えではないかもしれません。
ここで疑問が生じます。Linuxで壊れたシンボリックリンクをどのように見つけますか?一部のディストリビューションでは、壊れたリンクが異なる色で表示されますが、そのような壊れたリンクをすべて見つける方法ではありません。
Linuxで壊れたシンボリックリンクを見つける
このチュートリアルでは、Linuxでぶら下がっているリンクを見つけるためのいくつかの方法を紹介します。
驚くべきfindコマンドは、壊れたソフトリンクを見つけるためにも使用できます。このコマンドの新しいバージョンは、このタスク専用のオプションを提供します。
現在のディレクトリとそのサブディレクトリ内のすべてのぶら下がっているリンクを検索するには、次のような検索コマンドを使用できます。
find . -xtype l
出力には、壊れたリンクがすべて一覧表示されます:
find . -xtype l
./target_link2
./newdir/new_dir/link_dir
方法2:symlinksコマンドを使用して壊れたシンボリックリンクを検索します
ぶら下がっているリンクを処理するために、symlinksという名前の専用コマンドを使用することもできます。
symlinksコマンドをインストールする必要がある場合があります。 Debianで利用できます。 Ubuntuを使用している場合は、Universeリポジトリを有効にする必要があります。
sudo apt install symlinks
インストールすると、次のように使用できます。
symlinks [options] path_to_directory
したがって、現在のディレクトリで壊れたリンクを見つける必要がある場合は、次のように使用できます。
symlinks .
dangling: /home/abhishek/tutorials/target_link2 -> newdir/test_dir/myzip
何か気づきましたか? findコマンドに2つの壊れたリンクがあったのに対し、それは1つの壊れたリンクのみをリストします。再帰的に検索する場合は、オプションを指定する必要があるためです。
symlinks -r directory
それではない。 symlinksコマンドのオプション-dを使用して、壊れたリンクをすべて削除することもできます。
symlinks -d .
dangling: /home/abhishek/tutorials/target_link2 -> newdir/test_dir/myzip
deleted: /home/abhishek/tutorials/target_link2 -> newdir/test_dir/myzip
実際、シンボリックリンクを使用して、システム内のソフトリンクを適切に管理できます。ファイルシステム間のリンクについて警告したり、乱雑なリンクを相対的なリンクに変更したり、長いリンクを短くしたりすることができます。
Linuxでは、タスクを実行する方法がいくつかあります。壊れたシンボリックリンクを見つけることは同じです。私はあなたに2つの方法を示しましたが、確かに他の方法もあります。ぶら下がっているリンクを管理するための他のお気に入りのコマンドがある場合は、コメントセクションで共有してください。
関連するトピックについては、Linuxのハードリンクの概念について読むことをお勧めします。