> 시스템 튜토리얼 > 리눅스 > Linux 하드 링크와 소프트 링크를 철저히 이해합니다.

Linux 하드 링크와 소프트 링크를 철저히 이해합니다.

PHPz
풀어 주다: 2024-02-13 20:20:02
앞으로
848명이 탐색했습니다.

하드 링크와 소프트 링크는 Linux 시스템에서 두 가지 일반적인 링크 파일 형식입니다. 하드 링크와 소프트 링크의 개념에 대해 더 자세히 알고 싶으시면 연구를 통해 안내해 드리겠습니다. 이 기사를 읽으면 하드 링크와 소프트 링크의 차이점과 특성을 완전히 이해할 수 있습니다.

먼저 Linux 시스템에는 두 가지 유형의 링크 파일이 있습니다. 하나는 하드 링크이고 다른 하나는 심볼릭 링크라고도 불리는 소프트 링크입니다.

하드 링크

ln 명령을 사용하여 Linux 시스템에서 하드 링크를 만들 수 있습니다.

ln [매개변수] [소스 파일 또는 디렉터리] [대상 파일 또는 디렉터리] Linux 하드 링크와 소프트 링크를 철저히 이해합니다.

파일 시스템에서 각 파일에는 인덱스 노드(Inode Index)가 있습니다. 이 인덱스 노드는 파일을 식별하는 데 사용되며 이 인덱스 노드를 통해 하드 링크가 연결됩니다. 하드 링크는 동일한 파일 시스템의 파일 간에만 생성할 수 있으며 디렉터리는 생성할 수 없습니다. 그러나 여러 개의 하드 링크를 생성할 수 있습니다. 즉, 여러 파일이 동일한 인덱스 노드를 가리킬 수도 있고, 하나의 파일이 여러 경로 이름을 가질 수도 있습니다. 이므로 하나의 파일이 여러 파일 이름에 해당할 수 있습니다.

ls 명령을 사용하면 방금 생성한 하드 링크의 소스 파일과 inode를 볼 수 있습니다.

Linux 하드 링크와 소프트 링크를 철저히 이해합니다.

사진을 보면 소스파일과 하드링크 파일의 인덱스 노드가 동일해서 소스파일과 하드링크 파일이 같은 인덱스 노드를 가리키는 것을 알 수 있습니다.

그렇다면 디렉토리는 왜 하드 링크를 생성할 수 없나요? 한번 시도해 봅시다.

Linux 하드 링크와 소프트 링크를 철저히 이해합니다.

위 그림과 같이 사용자는 디렉토리에 대한 하드 링크를 생성할 수 없습니다. 디렉토리에 대한 하드 링크를 생성하면 디렉토리 트리가 순환하게 되는지 잘 생각해 봅시다. ? , 이 디렉토리에서 파일을 찾으려고 할 때 이름으로 찾을 수 없습니다.

하드 링크는 소스 파일의 복사본을 만드는 것과 같습니다. 하드 링크 파일의 내용이 수정되면 소스 파일의 내용도 변경됩니다.

Linux 시스템에서 개발할 때 실수로 일부 파일을 삭제한 후 복구하려고 했지만 이에 대해 아무것도 할 수 없는 상황에 직면한 적이 있나요?

복원 방법을 모르시면 교훈을 얻고 지혜를 얻으십시오. 다음에는 링크 중 하나가 삭제되더라도 이 파일에는 여러 개의 링크가 있도록 몇 가지 하드 링크를 더 만들겠습니다. 소스 파일이나 다른 하드 링크 파일은 계속 사용할 수 있지만 링크 중 하나를 삭제해도 파일에서 인덱스 노드로의 링크만 삭제되므로 인덱스 노드와 다른 링크에는 영향을 미치지 않습니다. 마지막이자 유일한 링크는 삭제되지 않았기 때문에 아직 마지막 빨대를 저장해야 합니다.

하드 링크를 삭제하고 다음 내용을 살펴보겠습니다.

Linux 하드 링크와 소프트 링크를 철저히 이해합니다.

그러나 Linux 시스템에는 여러 파일 시스템이 포함되며 이러한 파일 시스템은 서로 다른 디스크나 파티션에 위치합니다. 앞서 언급했듯이 하드 링크는 동일한 파일 시스템에서만 생성될 수 있습니다. 편리한?

그렇습니다. 하드 링크는 이래야 하는데 어떻게 우리 똑똑한 인간이 이럴 수 있겠습니까? 이때 소프트 링크가 작동하는데, 소프트 링크는 어떻게 된 걸까요?

소프트 링크

Linux 시스템에서는 Windows의 바로가기처럼 소프트 링크가 파일이나 디렉터리를 공유할 수 있습니다.

소프트 링크의 내용을 단순히 링크 또는 경로로 간주할 수 있습니다. 소프트 링크를 사용할 때 www.baidu를 사용하는 것처럼 소프트 링크의 내용을 통해 링크 또는 경로의 내용에 액세스합니다. com 링크를 사용하여 Baidu를 방문하거나 Ubuntu에서 sudo vim /etc/network/interfaces를 사용하여 /etc/network/interfaces 경로의 콘텐츠에 액세스합니다.

앞서 언급했듯이 하드 링크는 동일한 파일 시스템에서만 생성할 수 있으므로 소프트 링크에는 이러한 제한이 없습니다. 소프트 링크는 이러한 제한을 없애기 위해 생성되는 것으로 이해될 수 있습니다.

소프트 링크 파일은 모든 파일 시스템의 모든 파일이나 디렉터리를 가리킬 수 있습니다. 뿐만 아니라 소프트 링크는 존재하지 않는 파일을 가리킬 수도 있지만 존재하지 않는 파일에 대한 하드 링크를 만들 수는 없습니다.

이쯤 되면 소프트링크가 무엇인지 알아야겠죠!

Lin 명령을 사용하여 Linux 시스템에서 소프트 링크를 생성합니다. 이는 하드 링크를 생성하는 명령과 유사합니다.

1. 소프트 링크 만들기:

Linux 하드 링크와 소프트 링크를 철저히 이해합니다.

2. 소프트 링크 삭제:

Linux 하드 링크와 소프트 링크를 철저히 이해합니다.

위 그림을 보면 소스파일이 삭제되면 디렉토리에 소프트링크 파일명이 계속 표시되는데, 실제로 소프트링크 파일을 보면 실제로는 더 이상 존재하지 않고 데드링크가 되어 있는 것을 알 수 있습니다. 사실 디렉토리에 그대로 표시되어 있을 뿐인데, 윈도우에 설치된 앱의 소스 파일을 모두 삭제하면 그 단축키도 마찬가지다. 방법은 여전히 ​​바탕 화면에 표시되지만 마우스로 바로 가기를 클릭하면 파일이 더 이상 존재하지 않는다는 창이 나타납니다.

Linux 하드 링크와 소프트 링크를 철저히 이해합니다.

Windows 바탕화면에 바로가기를 원하지 않는 경우에는 바로가기를 직접 삭제하면 됩니다. 소프트 링크도 마찬가지입니다.

소프트링크를 생성할 때 주의할 점이 있습니다. 저처럼 상대경로를 사용하지 마세요. 즉, 상대경로로 생성된 소프트링크는 접근할 수 없으며, 오류가 발생합니다. 액세스 시 보고됩니다:

심볼릭 링크 수준이 너무 많습니다.

오류를 보고하는 줄이 표시되면 절대 경로로 변경하면 문제가 해결됩니다.

실제 시나리오에서 소프트 링크를 사용하는 두 가지 장소에 대해 간략하게 이야기하겠습니다.

1. 때때로 우리는 항상 많은 명령을 실행해야 하며, 실행된 명령은 다른 디렉터리의 경로에 해당합니다. 일부 경로는 정말 길고 기억하기 어렵습니다. 이때 소프트링크의 역할이 발휘됩니다. 이렇게 길고 냄새나는 경로에서 현재 경로까지 소프트링크를 생성하면 경로가 훨씬 단순해 질까요?

2. 가상 머신에 여러 종류의 크로스 컴파일러를 설치했는데, 컴파일러마다 다른 타사 라이브러리를 사용할 수 있습니다. 방법은 헤더 파일을 컴파일러의 경로에 넣고 프로그램을 컴파일하는 것입니다. 파일은 자동으로 찾아지지만 이 라이브러리 파일은 상대적으로 크기 때문에 모든 컴파일러가 이를 사용해야 한다면 각각을 이동시키면 더 많은 공간을 차지하게 됩니다. , 소프트 링크를 생성하고 라이브러리 파일을 공유하므로 차지하는 디스크 공간도 줄일 수 있습니다.

소프트 링크에는 다양한 기능이 있습니다. 다양한 시나리오에서 소프트 링크의 기능을 유연하게 사용해야 합니다. 결국에는 작업이 더 쉬워지거나 작업 효율성이 향상될 수 있습니다.

실제 응용에서는 하드링크를 덜 사용하고 소프트링크를 더 많이 사용합니다.

위 내용은 Linux 하드 링크와 소프트 링크를 철저히 이해합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:lxlinux.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿