>  기사  >  운영 및 유지보수  >  리눅스에서 심볼릭 링크와 하드 링크의 차이점은 무엇입니까

리눅스에서 심볼릭 링크와 하드 링크의 차이점은 무엇입니까

WBOY
WBOY원래의
2022-05-09 17:20:108373검색

차이점: 1. 하드 링크를 사용할 때 파일 이름을 바꾸거나 파일을 이동하면 링크 방향이 변경되지 않습니다. 심볼릭 링크를 사용할 때 파일 이름을 바꾸거나 파일을 이동하면 링크가 끊어집니다. 2. 하드 링크는 파일만 연결할 수 있지만 심볼릭 링크는 연결할 수 있습니다. 3. 심볼릭 링크는 다양한 파일 시스템에 걸쳐 생성될 수 있지만, 하드 링크는 다양한 파일 시스템에 걸쳐 생성될 수 없습니다.

리눅스에서 심볼릭 링크와 하드 링크의 차이점은 무엇입니까

이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.

리눅스의 심볼릭 링크와 하드 링크의 차이점은 무엇인가요?

리눅스에는 소프트 링크와 하드 링크의 두 가지 유형이 있습니다. 그 중 하나는 노드(inodes)를 가리키는 하드 링크입니다. (경로)

소프트 링크 파일은 심볼릭 링크라고도 합니다. 이 파일에는 win

의 바로 가기와 유사하게 다른 파일의 경로 이름이 포함되어 있습니다. 차이점:

파일 이름 바꾸기 move

파일 이름 변경 및 파일 이동은 Linux 시스템의 경우 파일의 절대 경로로 변경됩니다. 하드 링크의 경우 파일 이름 변경이나 파일 이동으로 인해 링크 방향이 변경되지는 않지만, 소프트 링크의 경우 파일 이름 변경이나 파일 이동으로 인해 링크가 끊어집니다. 이때 소프트 링크를 통해 파일 내용이 수정되면 새로운 링크가 생성됩니다. 새 inode는 원본 파일 이름 및 파일 데이터 블록과 연결됩니다.

파일 삭제

rm 명령 또는 nodejs의 링크 해제는 실제로 inode의 링크 수를 1만큼 줄입니다. 이전 하드 링크의 경우 inode1의 링크 번호가 1이 되도록 test_hard.txt를 삭제한다. 링크 번호가 0이 되면 시스템은 inode를 해제하고, 나중에 생성되는 새로운 파일은 inode의 inode 번호를 사용할 수 있다. 이때 파일 데이터 블록을 가리키는 아이노드가 없어 파일을 찾을 수 없다. 그러나 실제로 파일 데이터는 여전히 하드 디스크에 저장되어 있으므로 실수로 삭제된 파일을 복구하는 데 도움이 되는 일부 도구를 인터넷에서 자주 볼 수 있습니다. 소프트 링크 inode 링크 수는 1개입니다. 소프트 링크가 삭제되면 시스템은 inode를 해제합니다.

파일 및 폴더 연결

소프트 링크는 파일과 폴더를 연결할 수 있지만 하드 링크는 파일만 연결할 수 있습니다.

다른 파일 시스템에서 링크 만들기

소프트 링크는 다른 파일 시스템에서 만들 수 있지만 하드 링크는 그럴 수 없습니다. 하드 링크는 동일한 inode를 공유하고, 다른 파일 시스템은 다른 inode 테이블을 갖기 때문입니다.

응용 시나리오

하드 링크

파일 백업: 중요한 파일이 실수로 삭제되는 것을 방지하려면 파일을 백업하는 것이 좋은 방법이지만, 파일을 복사하면 디스크 공간이 소모됩니다. 하드링크는 디스크 공간을 차지하지 않고 파일 백업을 실현할 수 있습니다.

파일 공유: 여러 사람이 동일한 파일을 공동으로 관리하는 경우 하드 링크를 통해 개인 디렉터리에 하드 링크를 생성할 수 있습니다. 멀리.파일 문제입니다.

파일 분류: 서로 다른 파일 리소스를 분류해야 합니다. 예를 들어 영화가 foreign 폴더와 suspense 폴더에 각각 하드 링크를 생성하여 영화가 반복적으로 복사되는 것을 방지할 수 있습니다. . 디스크 공간 낭비. 어떤 사람들은 소프트 링크를 사용하는 것도 가능하지 않습니까? 예, 하지만 좋은 의미는 아닙니다. 소스 파일을 이동하거나 이름을 바꾸면 소프트 링크가 무효화되기 때문입니다.

소프트 링크

바로가기: 깊은 경로가 있는 파일의 경우 찾기가 불편합니다. 소프트 링크를 사용하여 바탕 화면에 바로가기를 만들어 파일을 빠르게 열고 편집할 수 있습니다.

유연한 프로그램 버전 전환: 기계에 동시에 여러 버전이 있는 프로그램의 경우 소프트 링크 방향을 변경하여 프로그램 버전을 빠르게 전환할 수 있습니다. 여기서는 Python 버전을 전환하기 위해 이를 수행할 수 있다고 언급되어 있습니다.

동적 라이브러리 버전 관리: 저는 그것에 대해 잘 모릅니다. 자세한 내용은 여기에서 읽을 수 있습니다.

요약

Linux 시스템은 inode를 통해 파일을 관리합니다. Inode는 파일 바이트 수, 파일 권한, 링크 수 및 데이터 블록 위치와 같은 정보를 저장합니다.

하드 링크는 소스 파일과 inode를 공유합니다. 파일 이름이 다르다는 점을 제외하고는 모두 소스 파일과 동일합니다. 폴더에 대한 하드 링크를 생성할 수 없으며, 다른 파일 시스템의 파일에 대한 하드 링크를 생성할 수 없습니다.

소프트 링크는 Windows 바로 가기와 유사하며 독립적인 inode를 갖습니다. 다른 파일 시스템의 폴더나 파일에 대한 소프트 링크를 생성할 수 있습니다.

하드 링크와 소프트 링크의 수정된 파일 내용은 본질적으로 소스 파일을 가리키는 데이터 블록이기 때문에 소스 파일과 동기화됩니다.

관련 추천: "Linux 비디오 튜토리얼"

위 내용은 리눅스에서 심볼릭 링크와 하드 링크의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.