---
name: "symlinks"
section: "1"
platform: "linux"
package: "symlinks"
version: "1.4-4"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/symlinks"
---

# symlinks(1)

symbolic link maintenance utility

## NAME

symlinks - symbolic link maintenance utility

## SYNOPSIS

**symlinks** \[ **-cdorstv** \] dirlist

## DESCRIPTION

**symlinks** is a useful utility for maintainers of FTP sites, CDROMs, and Linux software distributions. It scans directories for symbolic links and lists them on stdout, often revealing flaws in the filesystem tree.

Each link is output with a classification of **relative,** **absolute,** **dangling,** **messy,** **lengthy,** or **other\_fs.**

**relative** links are those expressed as paths relative to the directory in which the links reside, usually independent of the mount point of the filesystem.

**absolute** links are those given as an absolute path from the root directory as indicated by a leading slash (/).

**dangling** links are those for which the target of the link does not currently exist. This commonly occurs for **absolute** links when a filesystem is mounted at other than its customary mount point (such as when the normal root filesystem is mounted at /mnt after booting from alternative media).

**messy** links are links which contain unnecessary slashes or dots in the path. These are cleaned up as well when **-c** is specified.

**lengthy** links are links which use "../" more than necessary in the path (eg.  /bin/vi -\> ../bin/vim) These are only detected when **-s** is specified, and are only cleaned up when **-c** is also specified.

**other\_fs** are those links whose target currently resides on a different filesystem from where symlinks was run (most useful with **-r** ).

## OPTIONS

- *-c*

  convert absolute links (within the same filesystem) to relative links. This permits links to maintain their validity regardless of the mount point used for the filesystem -- a desirable setup in most cases. This option also causes any **messy** links to be cleaned up, and, if **-s** was also specified, then **lengthy** links are also shortened. Links affected by **-c** are prefixed with **changed** in the output.

- *-d*

  causes **dangling** links to be removed.

- *-o*

  fix links on other filesystems encountered while recursing. Normally, other filesystems encountered are not modified by symlinks.

- *-r*

  recursively operate on subdirectories within the same filesystem.

- *-s*

  causes **lengthy** links to be detected.

- *-t*

  is used to test for what **symlinks** would do if **-c** were specified, but without really changing anything.

- *-v*

  show all symbolic links.  By default,  **relative** links are not shown unless  **-v** is specified.

## BUGS

**symlinks** does not recurse or change links across filesystems.

## AUTHOR

**symlinks** has been written by Mark Lord \<mlord@pobox.com\>, the original developer and maintainer of the IDE Performance Package for linux, the Linux IDE Driver subsystem, hdparm, and a current day libata hacker.

## SEE ALSO

[**symlink**(2)](/symlink/2.md)
