ln 명령

용도

파일을 링크합니다.

구문

파일을 파일에 링크

ln [ -f | -n ] [ -s ] [ -P | -L ] SourceFile [ TargetFile ]

파일을 디렉토리에 링크

ln [ -f | -n ] [ -s ] [ -P | -L ] SourceFile ... TargetDirectory

설명

ln 명령은 SourceFile 매개변수에 지정된 파일을 TargetFile 매개변수에 지정된 파일이나 TargetDirectory 매개변수에 지정된 다른 디렉토리의 동일한 파일 이름과 링크합니다. 기본적으로, ln 명령은 하드 링크를 작성합니다. ln 명령을 사용하여 기호 링크를 작성하려면 -s 플래그를 지정하십시오.

기호 링크는 파일에 대한 간접 포인터입니다. 해당 디렉토리 항목은 링크된 파일의 이름을 포함합니다. 기호 링크는 파일 시스템에서 분산되며 디렉토리를 참조할 수 있습니다.

사용자가 파일을 새 이름에 링크하면 하나의 파일만 나열할 수 있습니다. 디렉토리에 링크하면, 하나 이상의 파일을 나열할 수 있습니다.

TargetFile 매개변수는 선택사항입니다. 목표 파일을 지정하지 않으면 ln 명령은 현재 디렉토리에 새 파일을 작성합니다. 새 파일이 SourceFile 매개변수에 지정된 파일 이름을 상속합니다. 예 5를 참조하십시오.

-P 플래그를 지정하고 소스 파일이 기호 링크인 경우 ln 명령은 linkat () 서브루틴과 유사하게 작동합니다. 여기서 SourceFile 매개변수는 Path1 인수이고 대상 대상 경로는 linkat () 서브루틴의 Path2 인수입니다. DirFileDescriptor1DirFileDescriptor2 매개변수 값은 둘 다 AT_FDCWD로 설정되며, linkat() 서브루틴의 플래그 매개변수는 0으로 설정됩니다.

-L 플래그를 지정하고 소스 파일이 기호 링크인 경우 ln 명령은 linkat () 서브루틴과 유사하게 작동합니다. 여기서 SourceFile 매개변수는 Path1 인수이고 대상 대상 경로는 linkat () 서브루틴의 Path2 인수입니다. DirFileDescriptor1DirFileDescriptor2 매개변수 값은 둘 다 AT_FDCWD로 설정되며, linkat() 서브루틴의 플래그 매개변수는 AT_SYMLINK_FOLLOW로 설정됩니다.

하드 링크를 만들 때 기본 동작을 변경하기 위해 별칭을 만들기 위해 -s 플래그를 지정하는 경우(예: 별칭 ln='ln -L')), SourceFile 매개변수 값이 생성된 심볼릭 링크의 콘텐츠로 사용되는 문자열로 작동하고 소스 파일이 파일로 존재할 필요가 없으므로 -L-P 플래그는 무시됩니다.

주:
  1. -s 플래그를 사용하지 않고 파일 시스템간에 파일을 링크할 수 없습니다.
  2. TargetDirectory가 이미 디렉토리로의 심볼 링크인 경우, ln 명령이 기존의 대상을 하나의 파일로 처리합니다. 이는 ln -fs somepath/lname symdir과 같은 명령이 symdir의 기존 기호 링크를 따르지 않고 대신 somepath/lname에서 symdir까지의 새로운 기호 링크를 작성함을 의미합니다.

플래그

항목 설명
-f ln 명령이 기존의 대상 경로를 대체하도록 합니다. 대상 경로가 이미 존재하고 -f 플래그가 지정되지 않으면 ln 명령은 새로운 링크를 작성하지 않고 표준 오류에 진단 메시지를 기록하며 나머지 SourceFiles를 계속 링크합니다.
-l 기호 링크 유형의 파일 이름을 지정하는 각 SourceFile 매개변수에 대해 기호 링크에서 참조하는 파일에 대한 하드 링크를 작성합니다.
-n 링크가 기존 파일인 경우 파일의 내용을 겹쳐쓰지 않도록 지정합니다. -f 플래그는 이 플래그를 재정의합니다. 이것이 디폴트 작동입니다.
-p 기호 링크 유형의 파일 이름을 지정하는 각 SourceFile 매개변수에 대해 기호 링크에 대한 하드 링크를 작성합니다.
-s ln 명령이 기호 링크를 작성하도록 합니다. 기호 링크는 링크된 파일의 이름을 포함합니다. 링크에서 열기 조작을 수행하면 참조된 파일이 사용됩니다. 기호 링크에 대한 stat 호출은 링크된 파일을 리턴합니다. 링크에 대한 정보를 얻으려면 lstat 호출을 수행해야 합니다. readlink 호출을 사용하여 기호 링크의 내용을 읽을 수도 있습니다. 기호 링크는 파일 시스템에서 분산되며 디렉토리를 참조할 수도 있습니다.

주: -s 플래그에 대해 SourceFile 매개변수를 지정할 때 절대 경로 이름을 사용해야 합니다. 절대 경로 이름이 지정되지 않으면 SourceFileTargetFile 매개변수가 다른 디렉토리에 있는 경우 예기치 않은 결과가 발생할 수 있습니다. 기호 링크를 작성하기 전에는 소스 파일이 존재하지 않아도 됩니다.

종료 상태

이 명령은 다음과 같은 종료값을 리턴합니다.

항목 설명
0 지정된 모든 파일이 성공적으로 링크되었습니다.
> 0 오류가 발생했습니다.

  1. 파일에 다른 링크(별명)를 작성하려면 다음을 입력하십시오.
    ln  -f chap1  intro
    이 링크는chap1새 이름으로 변경하십시오.intro.intro존재하지 않으면 파일 이름이 작성됩니다. Ifintro존재하지 않는 경우, 파일은 다음에 대한 링크로 대체됩니다.chap1. 그런 다음chap1intro파일 이름은 동일한 파일을 참조합니다. 하나의 파일을 변경하면 다른 파일에도 그 변경사항이 나타납니다. rm 명령으로 한 파일 이름을 삭제할 경우 해당 파일은 다른 이름으로 남아 있으므로 완전하게 삭제되지 않습니다.
  2. 파일을 다른 디렉토리 내의 동일한 이름에 링크하려면 다음을 입력하십시오.
    ln  index  manual
    이 링크는index새 이름으로 변경하십시오.manual/index.

    참고: intro예 1에서 파일의 이름입니다. manual예 2에서는 이미 존재하는 디렉토리입니다.

  3. 몇 개의 파일을 다른 디렉토리의 이름에 링크하려면 다음을 입력하십시오.
    ln  chap2  jim/chap3  /home/manual
    이 링크는chap2새 이름으로/home/manual/chap2jim/chap3-/home/manual/chap3.
  4. 패턴-대응 문자와 함께 ln 명령을 사용하려면 다음을 입력하십시오.
    ln  manual/* .
    모든 파일을 링크합니다.manual디렉토리를 현재 디렉토리로 복사하십시오..(점) 을 사용하여 동일한 이름을 지정하십시오.manual디렉토리.

    참고: 별표와 마침표 사이에 공백을 입력해야 합니다.

  5. 심볼 링크를 작성하려면, 다음을 입력하십시오.
    ln -s /tmp/toc toc
    기호 링크를 작성합니다.toc, 현재 디렉토리에 있습니다. 다음toc파일이 다음을 가리킵니다./tmp/toc파일로 내보냅니다. If the/tmp/toc파일이 있으면 cat toc명령은 해당 컨텐츠를 나열합니다.

    TargetFile 매개변수를 지정하지 않고 동일한 결과를 얻으려면 다음을 입력하십시오.

    ln -s /tmp/toc
  6. toc 파일의 기호 링크에 대한 하드 링크를 작성하려면 다음을 입력하십시오.
    ln -P toc target
  7. 기호 링크에서 참조되는 /tmp/toc 파일에 대한 하드 링크를 작성하려면 다음을 입력하십시오.
    ln -L toc target

파일

항목 설명
/usr/bin/ln ln 명령을 포함합니다.