기존 압축 폴더에 압축을 푼 파일을 추가하려고 합니다 new folder.zip
. zip -r new folder.zip
압축을 푼 파일을 추가해서 사용할 수 있나요? 이 명령은 폴더를 압축합니까? 다른 방법이 있나요?
답변1
업데이트 플래그를 사용하십시오.-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%)
답변2
다음을 사용하여 파일을 추가할 수 있다고 생각합니다.
zip -r zipfile.zip newfile.txt newfile1.txt
zip 명령에 대한 옵션을 -r
사용하면 파일을 추가할 수 있습니다.
답변3
이 명령을 성공적으로 사용했습니다 zip
. 그리고자라다folder1/folder2
(-g) 옵션, 파일과 다음을 포함하는 fileA.txt
하위 폴더를 추가하려면 fileB.txt
:
zip -gr folder.zip folder1/folder2
-r
방법재귀목차.
내 이해에 따르면 -g는 새 zip 파일을 만드는 대신 zip 파일을 늘려야 합니다(매우 큰 zip 아카이브에 유용할 수 있음). 문제가 발생하면 먼저 다음 예를 사용하여 폴더.zip에 하위 폴더를 만들어 볼 수 있습니다.
zip -g folder.zip folder1
zip -g folder.zip folder2
답변4
zip 아카이브의 동일한 위치에 많은 파일이 있고 해당 파일을 모두 아카이브에 복사하려는 경우 다음을 수행할 수 있습니다.
zip -ur zipfile.zip !(zipfile.zip)
이렇게 하면 zip 파일 자체(zip 파일의 부정)를 제외하고 발견된 모든 파일로 -u
zip 파일(옵션)이 재귀적으로(옵션) 업데이트 됩니다.-r
!
그런 다음 위의 동일한 규칙에 따라 zip 파일을 제외한 모든 파일을 삭제하면 됩니다.
rm !(zipfile.zip)