回答:
更新フラグを使用します。 -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
zipコマンドのオプションを使用すると、ファイルを追加できます。
-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