이전 스타일의 "느린" 심볼릭 링크 만들기

이전 스타일의 "느린" 심볼릭 링크 만들기

ln -s"빠른" 심볼릭 링크를 만듭니다. 해당 파일(및 해당 대상)을 광 미디어 등으로 복사하면 손상될 수 있습니다. 저는 이전 스타일의 "느린" 심볼릭 링크가 작동할 것이라고 믿습니다. 그런데 심볼릭 링크를 어떻게 생성합니까? ln플래그나 다른 명령을 찾을 수 없습니다.

일부 상황별 정보심볼릭 링크에 대한 Wikipedia 페이지:

기호 링크의 초기 구현에서는 기호 링크 정보를 일반 파일의 데이터로 저장했습니다. 파일에는 링크 대상에 대한 텍스트 참조가 포함되어 있으며 파일 모드 비트는 파일 유형이 심볼릭 링크임을 나타냅니다.

이 방법은 속도가 느리고 소규모 시스템에서는 디스크 공간을 비효율적으로 사용합니다. Fast Symbolic Links라는 개선 사항을 통해 디스크(inode)에 파일 정보를 저장하는 데 사용되는 데이터 구조 내에 대상 경로를 저장할 수 있습니다. 이 공간은 일반적으로 파일에 할당된 디스크 블록 주소 목록을 저장합니다. 따라서 짧은 대상 경로를 가진 심볼릭 링크에 빠르게 액세스할 수 있습니다. 빠른 심볼릭 링크가 있는 시스템은 대상 경로가 사용 가능한 inode 공간을 초과하는 경우 원래 방법을 사용하는 경우가 많습니다. 원래 스타일은 소급하여 느린 심볼릭 링크라고 불렸습니다. 또한 다른 버전 또는 이전 버전의 운영 체제와의 디스크 호환성을 위해 사용됩니다.

답변1

"빠른" 심볼릭 링크를 생성할지 아니면 "느린" 심볼릭 링크를 생성 할지 알 수 있는 방법은 없으며 ln, 파일 시스템이 심볼릭 링크를 저장하는 방법을 결정합니다.

광 미디어의 심볼릭 링크 표현 처리는 소스 파일 시스템보다는 변환을 처리하는 프로그램이나 미디어에 대한 액세스를 제공하는 파일 시스템 드라이버에 따라 달라집니다. 예를 들어 mkisofsRock Ridge 확장이나 TRANS.TBL파일을 사용하여 기호 링크를 나타낼 수 있습니다. 하드 링크도 처리할 수 있습니다.

답변2

"빠른" 심볼릭 링크와 "느린" 심볼릭 링크가 다르게 동작한다는 가정은 올바르지 않습니다. 둘 다 대상 경로를 텍스트로 저장합니다. 여기서 최적화는 디렉터리 항목의 공간을 사용하여 해당 텍스트를 저장하는 것입니다(충분히 짧은 경우). 경로가 너무 길면 파일 시스템은 파일 내용을 저장하기 위해 다른 블록을 사용하는 것처럼 투명하게 다른 블록을 사용하여 경로를 저장합니다. 디스크에서 두 번 읽어야 하기 때문에 속도가 느리지만 실제로는 차이를 거의 느끼지 못할 것입니다. 이는 SSD 또는 NVMe 드라이브가 있는 경우 특히 그렇습니다.

대신 심볼릭 링크에 대한 상대 경로를 사용할 수 있습니다. 파일을 다른 디스크에 복사하면 소스와 대상이 서로 동일한 관계를 갖는 한 심볼릭 링크는 예상대로 계속 작동합니다. 보너스로 상대 경로는 절대 경로보다 짧을 가능성이 높으므로 디렉터리 항목에 적합할 가능성이 더 높습니다.

답변3

어쩌면 "하드" 링크와 "소프트" 링크를 의미하는 것일까요? "소프트" 링크만 상징적입니다. 하드 링크는 "일반" 파일과 마찬가지로 디렉토리에 대한 inode 참조를 작동합니다.

"하드" 링크는 이론적으로 더 빠르지만 "소프트" 링크는 파일 시스템을 확장할 수 있다는 장점이 있습니다.

하드 링크를 원할 경우 플래그 없이 명령이 ln실행되어 링크를 생성할 수 없는 경우가 있습니다. -s-s플래그를 사용하면 다른 파일(특수 형식)에 대한 경로가 포함된 소프트 링크나 파일이 생성됩니다. 이 기호 링크는 속도가 약간 느리지만 운영 체제가 새 경로를 읽기 위해 파일을 연 다음 읽기 경로에서 파일을 다시 요청해야 하기 때문에 속도가 약간 느립니다. 하드 링크를 사용할 때 디렉토리 항목은 파일을 직접 가리키므로 위의 다단계 작업이 발생하지 않고 파일의 첫 번째 블록으로 바로 이동합니다.

"느린"/"빠른" 심볼릭 링크는 이제 역사입니다. 대부분의 파일 시스템에는 디렉토리 inode 테이블에 공간이 있습니다. 파일이 inode 테이블 자체에 들어갈 만큼 작으면 파일은 자체 블록 번호로 생성되지 않고 대신 inode 테이블에 플래그가 설정되고 파일 내용이 inode 항목에 직접 저장됩니다. 이는 매우 작은 파일에만 작동하며 심볼릭 링크는 그러한 파일 중 하나입니다.

이 수준의 파일 시스템에 데이터를 저장하는 방법을 운영 체제에 알릴 수 없으므로 하나 또는 다른 저장 방법을 강제하는 방법은 제한되어 있습니다. 예를 들어 매우 긴 경로를 사용하여 오버플로 inode 항목이 저장되도록 할 수 있습니다. 마찬가지로 일반 파일 시스템 라이브러리를 우회하여 디스크 블록을 수정하는 프로그램을 작성할 수 있습니다(물론 파일 시스템 업데이트는 OS의 작업이므로 이러한 작업을 거부하려고 시도하므로 동일한 OS 관리 문제도 해결해야 합니다). 책임)

관련 정보