명령줄을 통해 절대 경로가 포함된 Zip 파일

명령줄을 통해 절대 경로가 포함된 Zip 파일

명령줄을 통해 Linux에 절대 경로를 포함하도록 파일을 압축하는 방법이 있습니까?

zip과 tar의 절대 경로를 확인하는 Python 프로그램이 있고, 함수가 작동하는지 확인하기 위해 zip 파일을 만들고 싶습니다.

나는 tar를 사용하여 이 작업을 성공적으로 수행할 수 있었습니다. 나는 또한 이에 대한 답변을 찾기 위해 광범위하게 Google을 검색하고 zip 문서와 매뉴얼을 확인했지만 명확한 답변을 찾지 못했습니다.

답변1

$> zip file.zip $PWD/test.txt
adding: path/to/test.txt (deflated 5%)
$> unzip -l file.zip
Archive:  file.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
       20  03-11-2019 21:32   path/to/test.txt
---------                     -------
       20                     1 file

이를 위한 스위치도 있습니다.

$> zip -jj file.zip test.txt
adding: test.txt (deflated 5%)
$> unzip -l file.zip 
Archive:  file.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
       20  03-11-2019 21:32   path/to/test.txt
---------                     -------
       20                     1 files

그것은 완전히 동일한 결과를 제공하지만 처음부터 시작한다면 /실제로는 불가능하지만 -d옵션을 사용하여 압축을 풀 때 이를 지정할 수 있습니다.

응! 그건 편집입니다. 아마도 gz, xz, bzip2에 대해 이야기하고 있는 것 같은데요? 그렇다면 먼저 아카이브해야 합니다. 이는 tar와 같은 파일 시스템 개념이 없습니다. zip, rar, 7z 등 모두 그런 작업을 수행합니다.

답변2

ZIP 파일 형식에서 파일 경로는 항상 상대적입니다. 예를 참조하세요.이것:

  file name: (Variable)

      The name of the file, with optional relative path.
      The path stored should not contain a drive or
      device letter, or a leading slash.  All slashes
      should be forward slashes '/' as opposed to
      backwards slashes '\' for compatibility with Amiga
      and Unix file systems etc.

물론 ZIP 파일을 패치하여 슬래시를 강제로 적용할 수도 있지만 모든 일반 앱은 일반적으로 이러한 명백한 해킹(*)으로부터 보호됩니다.

(*) 훨씬 더 짜증나는 해킹은 연속적인 0으로 만들어지고 몇 바이트로 인코딩되는 거의 무한한 길이의 파일이었습니다. 압축을 풀면 컴퓨터가 다운되는 경우가 많습니다. 이제 모든 ZIP 처리 유틸리티가 이를 감지합니다.

관련 정보