{{위키데이터 속성 추적}}
{{소문자}}
{{소프트웨어 정보
| name                   = ln
| logo                   = 
| screenshot             = Ln-example-command.gif
| screenshot size        = 
| caption                = 
| developer              = [[AT&T 벨 연구소]]
| released               = {{시작 날짜와 나이|1971|11|3}}
| latest release version = 
| latest release date    = 
| operating system       = [[유닉스]], [[유닉스 계열]]
| genre                  = [[명령어]]
| license                = 
| website                = 
}}
<code>'''ln'''</code> 명령어는 기존 파일에 대한 [[하드 링크]]나 [[심볼릭 링크]]를 생성하기 위해 사용되는 표준 [[유닉스 명령어 목록|유닉스 명령]] 유틸리티이다.<ref name=UNIXKP>{{서적 인용|last1=Kernighan|first1=Brian W.|last2=Pike|first2=Rob|title=The Unix programming environment.|url=https://archive.org/details/unixprogramminge0000kern|date=1984|publisher=Prentice-Hall|location=Englewood Cliffs, N.J.|isbn=013937681X|page=[https://archive.org/details/unixprogramminge0000kern/page/59 59]}}</ref> 하드 링크를 사용하면 여러 개의 [[파일 이름]]을 동일한 [[컴퓨터 파일|파일]]에 연결할 수 있으며, 하드 링크는 지정된 파일의 [[아이노드]]를 가리키게 되며 데이터는 [[하드 디스크 드라이브|디스크]]에 저장된다. 한편, 심볼릭 링크는 [[파일 이름|이름]]을 통해 다른 파일들을 가리키는 특수한 파일들이다.<ref name=GNULnman>{{웹 인용|title=GNU Coreutils: ln invocation|url=https://www.gnu.org/software/coreutils/manual/html_node/ln-invocation.html|website=gnu.org|publisher=Free Software Foundation, Inc.|accessdate=7 August 2015}}</ref>

<code>ln</code> 명령어는 기본적으로 하드 링크를 생성하며 [[명령 줄 인터페이스|명령 줄]] [[명령 줄 인터페이스|변수]] <code>ln '-s'</code>로 호출할 때 심볼릭 링크를 생성한다.<ref>{{웹 인용|title=ln - The Open Group Base Specifications Issue 7|url=http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ln.html|website=pubs.opengroup.org|publisher=The IEEE and The Open Group|accessdate=7 August 2015}}</ref> 대부분의 [[운영 체제]]는 [[디렉터리]]에 대한 하드 링크 생성을 금지하는데, 이러한 기능은 [[파일 시스템]]의 구조를 파괴하여 다른 유틸리티의 동작에 간섭을 줄 수 있기 때문이다.<ref>{{웹 인용|title=Why are hard links not allowed to directories in UNIX/Linux?|url=http://unix.stackexchange.com/questions/22394/why-hard-links-not-allowed-to-directories-in-unix-linux?rq=1|website=unix.stackexchange.com|accessdate=7 August 2015}}</ref> 그러나 <code>ln</code> 명령어는 기존에 존재하지 않는 파일에 대한 심볼릭 링크를 생성하기 위해 사용할 수 있다.<ref name=GNULnman />

== 사양 ==
[[단일 유닉스 규격]]을 준수하는 시스템 상의 <code>ln</code> 유틸리티는 SUS의 일부를 형성하는 셸과 유틸리티(XCU) 문서에 명시되어 있다.<ref name=SUSOverview>{{웹 인용|title=The Single UNIX Specification, Version 4 - Overview|url=http://www.unix.org/version4/overview.html|website=unix.org|publisher=unix.org|accessdate=7 August 2015|보존url=https://web.archive.org/web/20180115021457/http://www.unix.org/version4/overview.html|보존날짜=2018-01-15|url-status=dead}}</ref><ref name=XCUTOC>{{웹 인용|title=Shell & Utilities: Detailed Toc|url=http://pubs.opengroup.org/onlinepubs/9699919799/utilities/contents.html|website=pubs.opengroup.org|publisher=The IEEE and The Open Group|accessdate=7 August 2015}}</ref>

이 사양은 <code>ln</code> 유틸리티를 호출하는 2가지 방법을 기술한다.<ref name=lnSpec>{{웹 인용|title=ln|url=http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ln.html#tag_20_67|website=pubs.opengroup.org|publisher=The IEEE and The Open Group|accessdate=7 August 2015}}</ref> 더 구체적으로 말해,
::하나의 파일을 호출할 때 <code>ln</code> 유틸리티는 <code>target_file</code> 연산자에 의해 지정된 목적 경로에서 <code>source_file</code> 연산자에 의해 지정된 소스 파일에 대한 새로운 하드 링크(디렉터리 엔트리)를 생성한다. 그러나 <code>-s</code> 옵션이 지정되면 심볼릭 링크를 생성한다.
::<syntaxhighlight lang="bash">
ln [-fs] [-L|-P] source_file target_file
</syntaxhighlight>
::여러 개의 파일을 호출할 때 <code>ln</code> 유틸리티는 새로운 하드 링크를 만들지만([http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_130 Directory entry]) <code>-s</code> 옵션을 지정하면 심볼릭 링크를 생성한다. 이는 <code>target_dir</code> 연산자에 의해 명명된 기존의 디렉터리의 목적 경로에서 <code>source_file</code> 연산자에 의해 지정된 각 파일을 대상으로 한다.
::<syntaxhighlight lang="bash">
ln [-fs] [-L|-P] source_file_1 source_file_2 ... target_dir
</syntaxhighlight>

== 같이 보기 ==
* [[유닉스 명령어 목록]]

== 각주 ==
{{각주}}

== 외부 링크 ==
* {{man|1|ln|die.net}}
* {{man|1|ln|FreeBSD}}
* {{man|1|ln|NetBSD}}
* {{man|1|ln|OpenBSD}}
* {{man|1|ln|Darwin}}

{{유닉스 명령어}}

[[분류:표준 유닉스 프로그램]]
[[분류:유닉스 SUS2008 유틸리티]]