Commands.page Logo

How to Find All Symbolic Links in Ubuntu Directory Tree

This article demonstrates the specific commands needed to identify all symbolic links within a chosen directory hierarchy on Ubuntu. It covers the primary find utility flags required to distinguish soft links from regular files and directories. Readers will gain a quick method for auditing file structures and verifying link targets efficiently.

Using the Find Command

The most effective way to locate symbolic links is using the find command built into Linux. This tool searches through directory trees and filters results based on specific criteria. To search for symbolic links, you must specify the file type flag associated with links.

Open your terminal and enter the following command, replacing /path/to/directory with your target folder:

find /path/to/directory -type l

The -type l option tells the system to list only symbolic links. This excludes regular files, directories, and other special file types from the output.

Knowing the location of a link is often insufficient; you may also need to see where the link points. You can combine the find command with ls or readlink to display the destination of each symlink.

To see detailed information including the target, use the -ls flag:

find /path/to/directory -type l -ls

Alternatively, to print only the path of the link and its target, use the following execution command:

find /path/to/directory -type l -exec readlink -f {} \;

Handling Permission Errors

If you search within system directories, you might encounter permission denied errors. To ensure the command scans all accessible folders within the tree, prepend sudo to the command.

sudo find /path/to/directory -type l

This grants the necessary privileges to traverse protected directories and list all symbolic links present in the specified tree.