LN(1) User Commands LN(1)

# [NAME](#NAME)

ln - make links between files

# [SYNOPSIS](#SYNOPSIS)

**ln** \[*OPTION*]... \[*-T*] *TARGET LINK\_NAME*  
**ln** \[*OPTION*]... *TARGET*  
**ln** \[*OPTION*]... *TARGET*... *DIRECTORY*  
**ln** \[*OPTION*]... *-t DIRECTORY TARGET*...

# [DESCRIPTION](#DESCRIPTION)

In the 1st form, create a link to TARGET with the name LINK\_NAME. In the 2nd form, create a link to TARGET in the current directory. In the 3rd and 4th forms, create links to each TARGET in DIRECTORY. Create hard links by default, symbolic links with **--symbolic**. By default, each destination (name of new link) should not already exist. When creating hard links, each TARGET must exist. Symbolic links can hold arbitrary text; if later resolved, a relative link is interpreted in relation to its parent directory.

Mandatory arguments to long options are mandatory for short options too.

[**--backup\[=CONTROL\]**](#backup_=CONTROL_)

make a backup of each existing destination file

[**-b**](#b)

like **--backup** but does not accept an argument

[**-d, -F, --directory**](#d,)

allow the superuser to attempt to hard link directories, if supported by the system

[**-f, --force**](#f,)

remove existing destination files

[**-i, --interactive**](#i,)

prompt whether to remove destinations

[**-L, --logical**](#L,)

dereference TARGETs that are symbolic links

[**-n, --no-dereference**](#n,)

treat LINK\_NAME as a normal file if it is a symbolic link to a directory

[**-P, --physical**](#P,)

make hard links directly to symbolic links

[**-r, --relative**](#r,)

with **-s**, create links relative to link location

[**-s, --symbolic**](#s,)

make symbolic links instead of hard links

[**-S, --suffix=SUFFIX**](#S,)

override the usual backup suffix

[**-t, --target-directory=DIRECTORY**](#t,)

specify the DIRECTORY in which to create the links

[**-T, --no-target-directory**](#T,)

treat LINK\_NAME as a normal file always

[**-v, --verbose**](#v,)

print name of each linked file

[**--help**](#help)

display this help and exit

[**--version**](#version)

output version information and exit

The backup suffix is '~', unless set with **--suffix** or SIMPLE\_BACKUP\_SUFFIX. The version control method may be selected via the **--backup** option or through the VERSION\_CONTROL environment variable. Here are the values:

[none, off](#none,)

never make backups (even if **--backup** is given)

[numbered, t](#numbered,)

make numbered backups

[existing, nil](#existing,)

numbered if numbered backups exist, simple otherwise

[simple, never](#simple,)

always make simple backups

Using **-s** ignores **-L** and **-P**. Otherwise, the last option specified controls behavior when a TARGET is a symbolic link, defaulting to **-P**.

# [AUTHOR](#AUTHOR)

Written by Mike Parker and David MacKenzie.

# [REPORTING BUGS](#REPORTING_BUGS)

Report bugs to: &lt;bug-coreutils@gnu.org&gt;.  
Report any translation bugs to: &lt;https://translationproject.org/team/&gt;.  
GNU coreutils home page: &lt;https://www.gnu.org/software/coreutils/&gt;  
General help using GNU software: &lt;https://www.gnu.org/gethelp/&gt;

# [COPYRIGHT](#COPYRIGHT)

Copyright © 2026 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later &lt;https://gnu.org/licenses/gpl.html&gt;.  
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

# [SEE ALSO](#SEE_ALSO)

[**link**(2)](/man/os/coreutils/link.2), [**symlink**(2)](/man/os/coreutils/symlink.2)

Full documentation &lt;https://www.gnu.org/software/coreutils/ln&gt;  
or available locally via: info '(coreutils) ln invocation'

September 2026 GNU coreutils 9.12

---

Document: ln(1) from coreutils 9.12-r3 (Chainguard OS)
Source: https://git.savannah.gnu.org/git/coreutils.git
