리눅스/Other commands

리눅스: 2개의 디렉토리를 하드링크(동일한 i-node) 하기

G. Hong 2021. 7. 9. 16:34
728x90
반응형

파일을 하드링크 하게 될 경우 2개의 파일은 동일한 i-node를 가진 파일이 됩니다. 이 글에서는 2개의 디렉토리를 하드링크를 한 것 처럼 동일한 i-node를 가지게 하는 방법에 대해서 알아보겠습니다.

 

하드링크와 심볼릭링크(소프트링크)에 관한 내용은 아래 내용 참고 바랍니다.

https://jybaek.tistory.com/578

 

하드링크와 심볼릭링크 개념잡기

윈도우로 치면 "바로가기" 같은 개념으로, 리눅스에도 링크 기능이 있다. 특정 파일이나 디렉터리를 링크 걸어 사용할 수 있는데, 링크에는 두 종료가 있다. 첫 번째 : 하드 링크 (hard link) 두 번째

jybaek.tistory.com

 

우선 리눅스에서는 ln 커맨드를 통한 하드링크를 디렉토리에는 사용할 수 없도록 되어 있습니다. 아래와 같이 에러가 발생하게 됩니다.

# ln test_gh test_gh2
ln: ‘test_gh’: hard link not allowed for directory
# ln -F test_gh test_gh2
ln: failed to create hard link ‘test_gh2’ => ‘test_gh’: Operation not permitted

 

하지만 하드링크와 같이 2개의 디렉토리가 동일한 i-node를 가지도록 할 수는 있습니다.

위의 예시처럼 test_gh 디렉토리를 test_gh2 디렉토리로 하드링크를 하려면, 'vi /etc/fstab' 명령어로 fstab 파일을 열어서 아래와 같은 내용을 추가 합니다. 

/root/test_gh     /root/test_gh2  none    bind    0       0

 

수정된 /etc/fstab 파일은 대략 아래와 같은 형식입니다.

[root@centos ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Mon Feb 10 10:34:11 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=af6a2b23-21c6-4b44-b34e-ba7004c56b2c /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/root/test_gh     /root/test_gh2  none    bind    0       0

 

그리고 fstab 파일을 저장 후 닫은 뒤, 'systemctl daemon-reload' 와 'mount /root/test_gh2'명령어를 실행하시면 됩니다.

[root@centos ~]# systemctl daemon-reload
[root@centos ~]# mount /root/test_gh2

 

아래와 같이 i-node 값이 같고 내부의 내용도 동일한 것을 확인 할 수 있습니다.

 

728x90
반응형