압축이 풀린 파일을 압축 폴더에 추가

압축이 풀린 파일을 압축 폴더에 추가

이미 압축된 기존 폴더에 압축이 풀린 파일을 추가하려고 합니다 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

-rzip 명령의 옵션을 사용하면 파일을 추가할 수 있습니다 .

답변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 파일( -u옵션) 을 -rzip 파일 자체를 제외하고 발견된 모든 파일로 재귀적으로(옵션) 업데이트됩니다( !zip 파일이 부정됨).

그런 다음 위의 동일한 규칙에 따라 zip 파일을 제외한 모든 파일을 삭제하면 됩니다.

rm !(zipfile.zip)

관련 정보