Linux 의 소프트 링크 와 하 드 링크 의 차이

8840 단어 Linux 시스템Shell
Linux 의 소프트 링크 와 하 드 링크 의 차이
  • ln 명령 은 소프트 링크 나 하 드 링크 를 만 드 는 데 사 용 됩 니 다
  • 소프트 링크 는 심 볼 릭 링크 라 고도 부 르 는데 특수 한 파일 입 니 다. 이 파일 은 다른 파일 이나 디 렉 터 리 의 경로 이름 (절대 경로 또는 상대 경로) 을 포함 합 니 다.기호 파일 프로 세 스 를 읽 거나 쓸 때 시스템 은 자동 으로 원본 파일 이나 디 렉 터 리 에 대한 작업 으로 변환 하지만 링크 파일 을 출력 할 때 시스템 은 링크 파일 만 삭제 하고 원본 파일 이나 디 렉 터 리 자 체 를 삭제 하지 않 습 니 다.소프트 링크 는 서로 다른 파일 시스템 의 파일 을 연결 할 수 있다.
  • 하 드 링크 하 드 링크 는 한 파일 의 하나 또는 여러 파일 이름 으로 이해 할 수 있다.파일 시스템 에 있 는 파일 의 물리 적 색인 (inode 라 고도 함) 을 참조 합 니 다.원본 파일 을 이동 하거나 삭제 할 때 하 드 링크 는 파일 구조 에 있 는 위치 가 아 닌 파일 의 물리 적 데 이 터 를 참조 하기 때문에 파괴 되 지 않 습 니 다.하 드 링크 파일 은 사용자 가 원본 파일 에 접근 할 수 있 는 권한 이 필요 하지 않 고 원본 파일 의 위 치 를 표시 하지 않 아 도 파일 의 안전 에 도움 이 됩 니 다.삭제 한 원본 파일 에 해당 하 는 하 드 링크 가 있다 면 이 파일 은 모든 인용 이 삭 제 될 때 까지 유 지 됩 니 다. 즉, 하 드 링크 수가 0 일 때 까지 이 파일 은 완전히 삭 제 됩 니 다.하 드 링크 는 같은 파일 시스템 의 파일 만 연결 할 수 있 습 니 다.

  • 소프트 링크 만 들 기
  • 원본 파일 만 들 기
  • [root@test ~]# mkdir /tmp/shell/test/ -p
    [root@test ~]# mkdir /tmp/shell/link/ -p
    [root@test ~]# touch /tmp/shell/test/test
  • 소프트 링크 만 들 기 (ln - s 원본 파일 지정 링크 파일)
  • [root@test ~]# ln -s /tmp/shell/test/test /tmp/shell/link/link
  • 소프트 링크 보기
  • [root@test ~]# ll /tmp/shell/link/
    total 0
    lrwxrwxrwx. 1 root root 20 May 14 05:39 link -> /tmp/shell/test/test
  • 원본 파일 과 소프트 링크 파일 번호 보기 (inode)
  • #         
    [root@test ~]# ls -i /tmp/shell/link/link 
    50381523 /tmp/shell/link/link
    [root@test ~]# ls -i /tmp/shell/test/test 
    42013236 /tmp/shell/test/test
  • 소프트 링크 삭제 (원본 파일 은 여전히 존재 합 니 다)
  • [root@test ~]# rm -fr /tmp/shell/link/link 
    [root@test ~]# ll /tmp/shell/test/test 
    -rw-r--r--. 1 root root 0 May 14 05:33 /tmp/shell/test/test

    하 드 링크 만 들 기
  • 원본 파일 만 들 기
  • [root@test ~]# mkdir /tmp/shell/test2/ -p
    [root@test ~]# touch /tmp/shell/test2/test2
    [root@test ~]# mkdir /tmp/shell/link2/
  • 하 드 링크 만 들 기 (ln 원본 파일 지정 링크 파일)
  • [root@test ~]# ln /tmp/shell/test2/test2 /tmp/shell/link2/link2
  • 하 드 링크 보기 (원본 파일 의 위 치 를 표시 하지 않 고 파일 보안 에 도움 이 됨)
  • [root@test ~]# ll /tmp/shell/link2/link2 
    -rw-r--r--. 2 root root 0 May 14 05:53 /tmp/shell/link2/link2
  • 원본 파일 과 소프트 링크 파일 번호 보기 (inode)
  • #        
    [root@test ~]# ls -i /tmp/shell/test2/test2 
    2535047 /tmp/shell/test2/test2
    [root@test ~]# ls -i /tmp/shell/link2/link2 
    2535047 /tmp/shell/link2/link2
  • 하 드 링크 삭제 (원본 파일 은 여전히 존재 합 니 다)
  • [root@test ~]# rm -fr /tmp/shell/link2/link2 
    [root@test ~]# ll /tmp/shell/test2/test2 
    -rw-r--r--. 1 root root 6 May 14 06:18 /tmp/shell/test2/test2

    메모: 리 눅 스 는 디 렉 터 리 에 하 드 링크 를 만 드 는 것 을 허용 하지 않 습 니 다.
    [root@test ~]# ln /tmp/shell/test2/ /tmp/shell/link2
    ln: ‘/tmp/shell/test2/’: hard link not allowed for directory

    비교 원본 파일 삭제 후
  • 소프트 링크 의 원본 파일 삭제
  • [root@test ~]# echo hello > /tmp/shell/test/test
    [root@test ~]# ln -s /tmp/shell/test/test /tmp/shell/link/link
    [root@test ~]# cat /tmp/shell/link/link
    hello
    [root@test ~]# rm -fr /tmp/shell/test/test 
    
    #       “   “
    [root@test ~]# touch  /tmp/shell/test/test
    [root@test ~]# echo hello world > /tmp/shell/test/test 
    [root@test ~]# cat /tmp/shell/link/link   ##          
    hello world

    요약: 소프트 링크 에서 원본 파일 을 삭제 하면 링크 파일 을 사용 할 수 없습니다.
  • 하 드 링크 의 원본 파일 삭제
  • [root@test ~]# echo hello > /tmp/shell/test2/test2 
    [root@test ~]# ln /tmp/shell/test2/test2  /tmp/shell/link2/link2
    [root@test ~]# cat /tmp/shell/link2/link2 
    hello
    [root@test ~]# rm -fr /tmp/shell/test2/test2 
    
    #       “   “
    [root@test ~]# touch /tmp/shell/test2/test2
    [root@test ~]# echo hello world > /tmp/shell/test2/test2 
    [root@test ~]# cat /tmp/shell/link2/link2   ##          (               )
    hello
    [root@test ~]# ln /tmp/shell/test2/test2  /tmp/shell/link2/link2 
    ln: failed to create hard link ‘/tmp/shell/link2/link2’: File exists
    [root@test ~]# ln -f /tmp/shell/test2/test2  /tmp/shell/link2/link2   ##   -f            (           )
    [root@test ~]# cat /tmp/shell/link2/link2    ##          
    hello world 

    요약: 하 드 링크 가 원본 파일 을 삭제 한 후에 도 링크 파일 은 정상적으로 사용 할 수 있 습 니 다.

    좋은 웹페이지 즐겨찾기