Ext4 파일 시스템(또는 Linux가 이해하는 다른 파일 시스템)이 동일한 데이터를 참조하는 여러 하드 링크에 서로 다른 메타데이터(예: 수정 시간, 소유자, 액세스 권한)를 할당하는 것이 가능합니까? (물론 크기상 불가능하다는 것을 알고 있습니다.)
이유:간단한 중복 제거 아카이브를 만들고 싶습니다. 파일에는 완전히 동일한 데이터가 포함되어 있지만 메타데이터는 다를 수 있습니다. 내 생각은 각 파일에 대한 하드 링크를 만든 다음 그에 따라 메타데이터를 설정하는 것입니다. 그러나 하나의 하드 링크를 변경하면 다른 하드 링크도 변경되는 것 같습니다. (아니면 내 문제에 대한 또 다른 해결책이 있을까요?)
답변1
Ext4의 경우 하드 링크는 단지인덱스 노드, 모든 메타데이터가 포함되어 있습니다.
따라서 하드 링크를 사용하면 다른 메타데이터를 가질 수 없습니다.
정확히 무엇을 하려는지 잘 모르겠지만, 또는 소프트 링크를 볼 수 git
있습니다 zip
. 그들은 모두 중복 데이터를 처리하는 방법을 가지고 있습니다.
답변2
파일 메타데이터(타임스탬프, 소유자, 권한 등)가 포함된 inode에서 파일 콘텐츠를 분리하는 것은 불가능합니다. 여러 메타데이터 세트가 있는 경우 대부분의 메타데이터에 문제가 발생합니다. 크기(분명히 내용과 일치해야 함)뿐 아니라 수정 시간(파일을 작성할 때 모든 inode에서 업데이트해야 함), 소유자(여러 개가 있는 경우) 소유자, 메타데이터를 관리하는 사람은 누구입니까?) 등
user-write-group보다 더 유연한 권한이 필요한 경우 다음을 사용할 수 있습니다.액세스 제어 목록, ext4는 기본적으로 이를 지원합니다.
당신은 그것을 사용할 수 있습니다파일 시스템 바인딩일부 다른 메타데이터를 사용하여 디렉터리 트리 보기를 렌더링합니다. 이 방법으로 모든 것을 변경할 수는 없지만 사용자와 그룹을 다시 매핑하고 권한을 변경할 수 있습니다.
관련이 없지만 내용은 동일한 다른 파일이 정말로 필요하고 공간 문제로 인해 파일 내용을 복제하고 싶지 않은 경우 다음 파일 시스템을 사용할 수 있습니다.중복 제거. 애플리케이션 내에서는 거의 아무것도 하지 않고 파일 시스템이 문제를 처리하도록 합니다. Ext4는 데이터 중복을 제거하지 않습니다.ZFS할 수는 있지만비용이 있다RAM 및 안정성.BTRFS비슷한 우려 사항이 있을 때도 이 작업을 수행할 수 있습니다.