명령줄을 통해 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 처리 유틸리티가 이를 감지합니다.