답변:
업데이트 플래그를 사용하십시오. -u
예:
zip -ur existing.zip myFolder
이 명령은 압축하고에 myFolder
내용을 추가 합니다 existing.zip
.
고급 사용법 :
업데이트 플래그는 실제로 들어오는 파일을 기존 파일과 비교하여 새 파일을 추가하거나 기존 파일을 업데이트합니다.
따라서 zip 파일 내에서 특정 서브 디렉토리를 추가 / 업데이트하려면 원하는대로 소스를 업데이트 한 다음 -u
플래그를 사용 하여 전체 소스를 다시 압축하십시오 . 변경된 파일 만 압축됩니다.
소스 파일에 액세스 할 수 없으면 zip 파일의 압축을 풀고 원하는 파일을 업데이트 한 다음 -u
플래그를 사용하여 다시 압축 할 수 있습니다 . 다시, 변경된 파일 만 압축됩니다.
예:
원본 소스 구조
ParentDir
├── file1.txt
├── file2.txt
├── ChildDir
│ ├── file3.txt
│ ├── Logs
│ │ ├── logs1.txt
│ │ ├── logs2.txt
│ │ ├── logs3.txt
업데이트 된 소스 구조
ParentDir
├── file1.txt
├── file2.txt
├── ChildDir
│ ├── file3.txt
│ ├── Logs
│ │ ├── logs1.txt
│ │ ├── logs2.txt
│ │ ├── logs3.txt
│ │ ├── logs4.txt <-- NEW FILE
용법
$ zip -ur existing.zip ParentDir
> updating: ParentDir/ChildDir/Logs (stored 0%)
> adding: ParentDir/ChildDir/Logs/logs4.txt (stored 96%)
이 명령을 사용하여 파일을 추가 할 수 있다고 생각합니다.
zip -r zipfile.zip newfile.txt newfile1.txt
-r
압축 명령의 옵션은 파일을 추가로 할 수 있습니다.
-r
재귀 옵션입니다.
-r
하지 않습니다. 디렉토리를 추가하거나 디렉토리를 추가하지 않을 때 사용할 수 있습니다 . 디렉토리를 추가하고 싶지 않고 언제든지 내용을 추가하지 않으려는 경우에는 거의 항상 간단히 말해서 예제는 정확하지만 설명이 잘못되었습니다.) (테스트하기에 가장 좋은 것은 매뉴얼에 대한 나의 해석 일뿐입니다).
나는 zip
명령 으로 성공했다 . 와 함께 성장한다 (-g) 옵션을 순서대로 하위 폴더 추가 folder1/folder2
파일 포함 fileA.txt
및 fileB.txt
:
zip -gr folder.zip folder1/folder2
-r
재귀 디렉터리를 의미합니다 .
내 이해에서 -g는 새로운 zip 파일을 만들지 않고 zip 파일을 증가시켜야합니다 (매우 큰 zip 아카이브에 유용 할 수 있음). 문제가 발생하면 먼저 다음을 사용하여 folder.zip에 하위 폴더를 만드십시오.
zip -g folder.zip folder1
zip -g folder.zip folder2