이 웹사이트Linux zip 유틸리티가 이 -u
플래그를 설명하는 방법은 다음과 같습니다.
zip 아카이브의 기존 항목은 수정 시간이 zip 아카이브에 이미 있는 버전보다 최신인 경우에만 대체(업데이트)됩니다. 예를 들어:
zip -u stuff * will add any new files in the current directory, and update any files which
zip 아카이브 stuff.zip이 마지막으로 생성/수정된 이후 수정되었습니다.
제 질문은 마지막 zip 이후 특정 파일이 삭제된 경우 -u
해당 파일이 삭제되어 *.zip 파일에서 제거된 것으로 인식됩니까? 입니다. 아니면 타임스탬프 정보가 누락되어(파일이 삭제되었기 때문에) "최신" 파일이 없기 때문에 백업 파일을 *.zip에 보관하게 됩니까?
답변1
zip 버전 3.0에는 다음이 있습니다.
The new File Sync option (-FS) is also considered a new mode, though it
is similar to update. This mode synchronizes the archive with the
files on the OS, only replacing files in the archive if the file time
or size of the OS file is different, adding new files, and deleting
entries from the archive where there is no matching file. As this mode
can delete entries from the archive, consider making a backup copy of
the archive.
내 생각엔 이게 당신이 쫓는 일인 것 같은데요?
만약 너라면하다파일을 아카이브에 보관하려면 -u
다음을 수행하십시오.
$ mkdir test && touch test/{flibble,foobaz,blurp}
$ zip -r test test
adding: test/ (stored 0%)
adding: test/foobaz (stored 0%)
adding: test/flibble (stored 0%)
adding: test/blurp (stored 0%)
$ rm test/flibble && touch test/{,flibble}
$ zip -ru test test
updating: test/ (stored 0%)
updating: test/flibble (stored 0%)
$ unzip -l test
Archive: test.zip
Length Date Time Name
--------- ---------- ----- ----
0 2013-08-15 22:04 test/
0 2013-08-15 22:04 test/foobaz
0 2013-08-15 22:04 test/flibble
0 2013-08-15 22:04 test/blurp
--------- -------
0 4 files