텍스트 파일의 일부와 재구성을 별도로 저장: 여러 대상과의 심볼릭 링크?

텍스트 파일의 일부와 재구성을 별도로 저장: 여러 대상과의 심볼릭 링크?

제목은 다르지만 내용은 동일한 두 개의 텍스트 파일이 있습니다.

$ cat original_file_v1
header 1 beginning
header 1 contents
header 1 end
common contents line 1
common contents line 2
...

$ cat original_file_v2
header 2 beginning
header 2 contents
header 2 end
common contents line 1
common contents line 2
...

제 생각에는:

  • 공간을 절약하기 위해 여러 파일의 헤더와 공통 콘텐츠를 단일 파일에 한 번만 저장합니다.
  • 필요할 때 original_file_v1재창조 할 수 있는 능력 .original_file_v2

이는 중복 제거의 한 형태이지만 선택한 특정 파일에만 해당됩니다.

방법이 있나요?어느ext및 를 포함한 Linux 파일 시스템이 ZFS작업에 적합합니까? 아니면 이를 수행할 수 있는 외부 도구가 있습니까?


제안과 마찬가지로 솔루션은 기호 링크 배열, 정렬된 배열로 구성된 파일일 수 있습니다.모으다사용자가 실제로 어레이에 액세스할 수 있도록 대상 파일모두이 파일들은 지정된 순서로 되어 있습니다. 그러나 그것이 존재하는지 나는 모른다.

답변1

  1. 파일 보관 프로그램(예: tar압축 적용)을 사용하면 파일을 다시 만들 수 있습니다.필요할 때, 그러나 불투명

     tar czf bothfiles.tgz original_file_v1 original_file_v2
     tar cf - original_file_v1 original_file_v2 | gzip > bothfiles.tgz
    

    첫 번째 파일을 복원하려면,

     tar xzf bothfiles.tgz original_file_v1
    
  2. S3QL적용될 것이다압축 및 중복 제거블록을 누르세요. 일부 행의 경우 중복 제거가 시작되는 지점에 도달할 가능성이 낮지만 대부분의 유사한 파일에는 매우 효과적일 것입니다. (이름에도 불구하고, 당신은S3 스토리지가 필요하지 않습니다실행할 수 있도록 합니다. )

    S3QL은 훌륭하게 작동합니다. 저는 장기 아카이브 백업을 유지하는 데 사용합니다.

  3. 각 파일을 고유한 공개 부분으로 분할할 수 있을까요?

     nl < <(cat header1 common)          # Number the lines from file1
     cp <(cat header2 common) /tmp/f2    # Copy the composite file2
    

관련 정보