解凍したファイルを圧縮フォルダに追加する

解凍したファイルを圧縮フォルダに追加する

すでに圧縮されている既存のフォルダーに、解凍したファイルを追加しようとしていますnew folder.zip。 解凍したファイルを追加した後、 を使用することは可能ですかzip -r new folder.zip? このコマンドはフォルダーを圧縮しますか? これを行うための代替手段はありますか?

答え1

更新フラグを使用します:-u

例:

zip -ur existing.zip myFolder

このコマンドは、 を圧縮してmyFolder(およびその内容) に追加しますexisting.zip


高度な使用法:

更新フラグは、実際には受信ファイルと既存のファイルを比較し、新しいファイルを追加するか、既存のファイルを更新します。

したがって、zip ファイル内の特定のサブディレクトリを追加/更新する場合は、必要に応じてソースを更新し、フラグを使用してソース全体を再度 zip します-u。変更されたファイルのみが zip されます。

ソース ファイルにアクセスできない場合は、zip ファイルを解凍し、必要なファイルを更新してから、フラグを使用して再度 zip 圧縮することができます-u。この場合も、変更されたファイルのみが zip 圧縮されます。

例:

元のソース構造


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育つ(-g) オプションを使用して、folder1/folder2ファイルを含むサブフォルダーを追加しますfileA.txtfileB.txt

zip -gr folder.zip folder1/folder2

-r手段再帰する監督

私の理解では、-g は zip ファイルを拡張するものであり、新しい zip ファイルを作成するものではありません (非常に大きな zip アーカイブでは便利な場合があります)。問題が発生した場合は、まず次のようにして folder.zip にサブフォルダーを作成してみてください (例):

zip -g folder.zip folder1
zip -g folder.zip folder2

答え4

zip アーカイブと同じ場所に多数のファイルがあり、それらすべてをアーカイブにコピーしたい場合は、次のようにします。

zip -ur zipfile.zip !(zipfile.zip)

これは、zip ファイル自体 (は zip ファイルの否定)を除くすべてのファイルで、zip ファイル (-uオプション) を再帰的に更新します (オプション)。-r!

次に、上記と同じルールに従って、zip ファイル以外のすべてのファイルを削除するだけです。

rm !(zipfile.zip)

関連情報