Home  >  Article  >  System Tutorial  >  How to find broken symbolic links in Linux

How to find broken symbolic links in Linux

WBOY
WBOYforward
2024-02-10 19:54:16982browse

In a previous article, we explained what a symbolic link is in Linux. Symbolic links or soft links are used to create shortcuts to other files in Linux. Symbolic links are heavily used in Linux to link libraries.

When the original file pointed by the link is deleted, the link becomes a dead link. It's probably not a good idea to keep such links around.

Now the question comes, how to find broken symbolic links in Linux? Some distributions display broken links in different colors, but this is not a way to find all such broken links.

In this tutorial, I will show you several ways to find dead links (dangling links) in Linux.

Method 1. Use the find command to list all damaged symbolic links

The magical find command can also be used to find broken soft links. Newer versions of this command provide dedicated options for this task.

To find all dead links in the current directory and its subdirectories, you can use the find command, as shown below:

find . -xtype l

Its output will list all broken links:

┌──(linuxmi㉿linuxmi)-[~]
└─$ find . -xtype l
./www.linuxmi.com/xpstat
./www.linuxmi.com/linuxmi/linux
./www.linuxmi.com/linuxmi/linuxmi.com/ubuntu
./www.linuxmi.com/linuxmi/linuxmi
./linuxmi.com/share/inuxmi.md
./.mozilla/firefox/0gl7btzd.default-esr/lock
./linuxmi/link_dir
如何在 Linux 中查找断开的符号链接

You can use find with exec and delete the links it finds.

Method 2: Use the symlinks command to find broken symbolic links

You can also use a dedicated command called symlinks to handle dead links.

You may have to install the symbolic link command. It is available in Debian. If you are using Ubuntu, you must enable the Universe repository.

sudo apt install symlinks

After installation, you can use it as follows:

symlinks [options] path_to_directory

So, if you have to find a broken link in the current directory, you can use it like this:

┌──(linuxmi㉿linuxmi)-[~]
└─$ symlinks .
absolute: /home/linuxmi/test -> /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py
如何在 Linux 中查找断开的符号链接

Did you notice anything? It only lists one broken link, while the find command has 7 broken links. This is because if you want to search recursively, you must specify the option:

symlinks -r directory

It's not like this. You can also choose to remove all broken links using the -d option of the symlinks command.

┌──(linuxmi㉿linuxmi)-[~]
└─$ symlinks -d .
absolute: /home/linuxmi/test -> /home/linuxmi/linuxmi.com/linuxmi/linuxmi.py
如何在 Linux 中查找断开的符号链接

In fact, symbolic links can be used to correctly manage soft links in the system. It can warn you about links across file systems, change cluttered links to relative ones or shorten lengthy links.

In Linux, there are multiple ways to perform a task. Finding broken symbolic links is the same. I've shown you two methods, but there are certainly others. If you have other favorite commands for managing dead links, please share them with us in the comments section.

On a related topic, you can also read The concept of hard links in Linux.

The above is the detailed content of How to find broken symbolic links in Linux. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:lxlinux.net. If there is any infringement, please contact admin@php.cn delete