7-Zip을 사용하여 아카이브의 파일 권한 및 심볼릭 링크를 유지합니다.

7-Zip을 사용하여 아카이브의 파일 권한 및 심볼릭 링크를 유지합니다.

test세 개의 파일이 있는 디렉토리가 있습니다 ls -l test.

total 8
-rw-r--r-- 1 mb mb 16 Jul 25 11:12 regular_file
-rwxr-xr-x 1 mb mb 19 Jul 25 11:02 script.sh
lrwxrwxrwx 1 mb mb 12 Jul 25 11:14 symlink -> regular_file

여기에는 일반 파일, 심볼릭 링크 및 실행 가능한 스크립트가 포함되어 있습니다.

이 디렉토리를 아카이브한 후 tar -czf test.tgz test/7-Zip을 사용하여 세 개의 파일을 추출하고 싶습니다.

7z x -tgzip test.tgz && 7z x -ttar test.tar

불행하게도 7-Zip은 원본 파일을 생성하지 않습니다. 스크립트는 실행 가능한 비트를 잃어버리고 symlink더 이상 심볼릭 링크가 아니라 텍스트를 포함하는 파일입니다 regular_file.

total 12
-rw-r--r-- 1 mb mb 16 Jul 25 11:12 regular_file
-rw-r--r-- 1 mb mb 19 Jul 25 11:02 script.sh
-rw-r--r-- 1 mb mb 12 Jul 25 12:16 symlink

반면에 해당 권한과 전체 심볼릭 링크를 사용하여 파일을 추출할 수 있습니다.

tar -xzf test.tgz

7-Zip으로 파일을 보관하기 전의 상태로 추출할 수 있는 방법이 있습니까?


7-Zip 버전은 16.02입니다. 저는 아치 리눅스 5.7.7을 사용하고 있습니다.

이것은생성된 아카이브를 사용합니다 tar.

답변1

이러한 버그 보고서에 따르면 이는 7-Zip의 제한 사항인 것으로 보입니다.

이제 tar -xzf test.tgz.

답변2

사실 기사에서도 언급됐지만7z 매뉴얼 페이지Unix 시스템의 경우 7-Zip은 권한을 저장하지 않습니다.

백업 및 제한 사항 다음과 같은 이유로 Linux/Unix 백업에는 7-zip 형식을 사용하지 마십시오. - 7-zip은 파일의 소유자/그룹을 저장하지 않습니다. Linux/Unix에서 디렉터리를 백업하려면 tar를 사용해야 합니다.

  • 백업 디렉터리: tar cf - 디렉터리 7za a -si 디렉터리.tar.7z
  • 백업 복원: 7za x -sodirectory.tar.7z tar xf -

파일 및 디렉터리(파일의 소유자가 아닌 경우)를 다른 Unix/MacOS/Windows 사용자에게 보내려면 7-zip 형식을 사용할 수 있습니다.

예: 7za 디렉토리.7z 디렉토리

해당 플래그는 생각한 대로 작동하지 않으므로 "-r"을 사용하지 마십시오.

디렉토리/*를 사용하지 마십시오. ".” 파일(예: “디렉토리/"는 "directory/.profile"과 일치하지 않습니다)

따라서 TAR과 함께 사용하면 소유자/그룹 상태를 보존할 수 있어야 합니다.

관련 정보