from Server/└ Linux(Fedora) 2009. 3. 22. 17:30
우선 cp명령으로 만들어진 파일은 파일 데이터 전체가 복사가 됩니다. 곧 원본 파일이 64KB의 공간을 차지했었다면 복사되는 파일시스템에64KB의 공간을 더 차지하게 되는 것입니다. 이 두 파일은 개별적이고 독립적이라 복사된 후에는 서로에게 아무런 영향을 미치지않습니다.

하드링크는 겉으로 보기엔 cp와 별반 다른 게 없는 것 같습니다만 단지 그 파일의 데이터를 참조할 수 있는 디렉토리 엔트리만을 하나 더 만드는 것입니다. 예를 들어 a라는 파일을 하드링크하여 b를 만들게 되면 a를 편집한 후 b를 열었을 때에도 편집이 되어있게 됩니다. 한 마디로 양 쪽 다 같은 데이터를 가리키고 있다는 얘기죠. 단 이 것은 심볼릭링크와는 엄연히 다릅니다. 하드링크는 "원본"이란 개념이 없습니다. 위와 같이 b가 생성된 상태에서 원래 있었던 a파일을 삭제(unlink)하여도 그 데이터를 아직 가리키고 있는 b가 존재하기 때문에 데이터는 지워지지 않습니다. 그리고 또한 하드 링크는 동일한 파일시스템(UFS, EXT 등) 내에서만 생성될 수 있습니다.

그럼 마지막으로 심볼릭링크(이하 심링크)란 위와 같이 같은 데이터를 가리킨다고 보면 됩니다만, 엄격히 따져보면 단지 대상 엔트리만을 "참조"한다고 봐야합니다.데이터와는 무관하게 특정한 디렉토리 엔트리만을 참조하는 것이죠. 이 점은 매우 중요합니다. 왜냐하면 때에 따라서 존재하지도 않는디렉토리 엔트리를 참조하기도 하니깐요. 디렉토리 엔트리에서 파일 속성을 보아도 위 두 경우와는 달리 심링크임을 뜻하는 l을 (8진수로 0120000) 확인할 수 있습니다. 심링크는 또한 다른 파일시스템에 존재하는 엔트리를 참조할 수도 있답니다.

 

명령********


 

LN

Section: User Commands (1)
Updated: GNU File Utilities
Index
Return to Main Contents
 

이름

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'
간단한 백업을 만듬.

'Server > └ Linux(Fedora)' 카테고리의 다른 글

[Linux]Error  (0) 2009.03.27
[Linux]파일 권한 설정.  (0) 2009.03.22
[Linux]APM 설치  (0) 2009.03.22
[LInux] 주의사항  (0) 2009.03.22
[Linux]데몬 (Daemon) - standalone, index(xinetd) type  (0) 2009.03.21
,