반응형

오늘은 링크를 만들어보고 그 특징을 살펴볼 것이다.


하드 링크

하드 링크는 원본 파일과 동일한 inode를 가지며, 원본 파일이 삭제되어도 링크 파일을 여전히 사용할 수 있다. 이는 위치 정보를 가지고 있는 이름을 여러 개 생성하는 개념으로, 한 파일을 지워도 하드에서 해당 위치를 찾아갈 수 있다. 하드 링크를 만들기 위해서는 ln [원본파일] [링크파일] 명령어를 사용한다.

링크로 연결되어 있기 때문에 하나의 파일을 수정하면 다른 파일도 수정된다.

하지만 둘 중 어느 파일을 지운다고 해서 지장이 가거나 하지는 않는다.


심볼릭 링크

심볼릭 링크는 원본 파일의 경로를 가리키는 파일이다. 따라서 심볼릭 링크를 수정하면 원본 파일도 수정된다. 심볼릭 링크를 만들기 위해서는 ln -s [원본파일] [링크파일] 명령어를 사용한다.

아까와는 달리 심볼릭 링크된 파일은 파란색 텍스트로 나오고 어느 파일과 링크 되었는지 나오게 된다.

하드 링크와 마찬가지로 둘 중 어느 것이라도 내용을 수정하면 나머지도 마찬가지로 수정이 된다.

하지만 원본 파일이 없어지면 링크된 파일은 링크가 끊어지고 빨간색으로 표시된다.

명령어를 이용해 링크된 파일과 같은 이름의 파일을 만들면 다시 연결은 되지만 내용은 전혀다른 파일이 된다. 이 점을 유의 해야 한다.


기타 옵션들

출처 : 리눅스 ln --help

      --backup[=CONTROL]      make a backup of each existing destination file
  -b                          like --backup but does not accept an argument
  -d, -F, --directory         allow the superuser to attempt to hard link directories (note: will probably fail due to
                                system restrictions, even for the superuser)
  -f, --force                 remove existing destination files
  -i, --interactive           prompt whether to remove destinations
  -L, --logical               dereference TARGETs that are symbolic links
  -n, --no-dereference        treat LINK_NAME as a normal file if it is a symbolic link to a directory
  -P, --physical              make hard links directly to symbolic links
  -r, --relative              create symbolic links relative to link location
  -s, --symbolic              make symbolic links instead of hard links
  -S, --suffix=SUFFIX         override the usual backup suffix
  -t, --target-directory=DIRECTORY  specify the DIRECTORY in which to create the links
  -T, --no-target-directory   treat LINK_NAME as a normal file always
  -v, --verbose               print name of each linked file
      --help     display this help and exit
      --version  output version information and exit


혹시나 더 궁금한 것들이 있다면 댓글을 남겨달라. 조사해서 올려보도록 하겠다.

반응형