LN(1)

이름
ln - 파일 링크

사용법
ln [options] source [dest]
ln [options] source... directory
Options:
[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}] [--version-control={numbered,existing,simple}] [--backup] [--directory] [--force] [--interactive] [--no-dereference] [--symbolic] [--verbose] [--suffix=backup-suffix] [--help] [--version]

설명
ln는 파일 간의 링크를 만든다. 기본적으로 하드 링크를 만들고, -s 옵션을 쓰면, 심볼릭 (`소프트') 링크를 만든다.

유닉스의 `링크'에는 두가지 개념이 있으며, 이 둘은 보통 하드 링크와 소프트 링크라 불린다. 하드 링크는 단지 파일이 가진 또하나의 이름일 뿐이다. (그리고 파일은 여러 개의 이름을 갖을 수 있다. 파일은 여러 이름들이 모두 지워질 때 갈이 지워진다. 파일의 이름 수는 ls(1) 로 주어진다. `진짜' 이름 같은 것은 존재하지 않는다. 모든 파일명은 동일한 지위에 있다. 꼭 그렇지는 않지만 보통은 모든 파일명은 데이터가 있는 파일 시스템에 같이 있다.

소프트 링크(심볼 링크)는 하드링크와는 완전히 다른 녀석이다. 소프트 링크는 패스명을 갖고 있는 조그마한 파일이다. 따라서 소프트링크는 다른 파일시스템의 (즉, 예를 들어 다른 컴퓨터에서 마운트된 NFS 시스템의) 파일을 가르키고 있을 수도 있으며, 심지어는 반드시 존재하는 파일을 가르키고 있다는 보장도 없다. open(2) 이나 stat(2) 시스템 호출로 억세스할 때에 운영체제 커널은 심볼링크로의 참조를 패스명이 가르키는 파일로의 참조로 바꾼다. (하지만, rm(1) 과 unlink(2) 은 링크를 지우고, 링크가 가리키는 파일은 건드리지 않는다. 그리고, 특수한 시스템 호출인 lstat(2) 과 readlink(2) 는 심볼링크의 상태와 링크가 가리키는 파일을 읽는다. 또한 다른 여러 시스템 호출이 링크를 어떻게 다루는가는 운영체제에 따라 다르기 때문에 확실히 말할 수 없다.)

옵션

-b, --backup
    대상 파일이 이미 있으면, 그것을 백업한다.

-d, -F, --directory
    경로의 하드링크를 허용한다. 이것은 시스템관리자만 가능하다.

-f, --force
    대상 파일이 이미 있어도 그냥 지운다.

-i, --interactive
    대상 파일이 이미 있을 때 어떻게 할 것인지 사용자에게 물어본다.

-n, --no-dereference
    만약 링크할 원본이 심블릭 파일이면, ln 명령은 그 심블릭 대상이 되는 파일을 링크한다. 이렇게 하지 않고, 단지 그 심블릭 파일 자체를 심블릭 정보와 함께 링크하고 할 때, 이 옵션을 사용한다. 이 옵션은 --force 옵션과 함께 유용하게 쓰인다.

-s, --symbolic
    심블릭 링크. 심블릭 링크를 지원하지 않는 시스템에서 이 옵션을 사용할 경우에는 오류 메시지를 보여준다.

-v, --verbose
    각 파일의 작업 상태를 자세히 보여준다.

--help
    도움말을 보여주고 마친다.

--version
    버전 정보를 보여주고 마친다.

-S, --suffix backup-suffix
    만약에 대상이 이미 있어, 백업을 해야할 경우에 그 백업 파일에서 사용할 파일 이름의 꼬리 문자를 지정한다. 이것은 이미 지정되어 있는 SIMPLE_BACKUP_SUFFIX 환경 변수를 무시하게 된다. 만약 이 환경변수도 지정되어 있지 않고, 이 옵션도 사용하지 않는다면, 초기값으로 Emacs과 같이 `~' 문자를 사용한다.

-V, --version-control {numbered,existing,simple}
    백업하는 방법을 지정하는데, 이 옵션은 이미 지정되어 있는 VERSION_CONTROL 환경 변수를 무시한다. 만약 이 환경 변수도 지정되어 있지 않고, 이 옵션도 사용하지 않는다면, 초기값으로 `existing'을 사용한다. 여기서 사용하는 백업방법은 GNU Emacs의 `version-control' 값과 같다. 아래와 같이 보다 짧은 지시어들도 사용될 수 있다. 여기서 사용될 수 있는 백업 방법은 아래와 같다.

    `t' 또는 `numbered'
        항상 번호 있는 백업본을 만든다.

    `nil' or `existing'
        대상 파일이 이미 있을 경우에만 백업본을 만든다.

    `never' or `simple'
        간단한 백업을 만듬.