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


32

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


パイプすることができ、元のファイルを解凍します| 次に、新しいファイルを作成する方法としてコンテンツ全体を圧縮します。単一のコマンドでこれをどのように行うかはわかりません。
unixmiah 14年

回答:


44

更新フラグを使用します。 -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?
アーロンエサウ

あなたの質問に答えるセクションを追加しました。:)
イーサン・ストライダー

0

このコマンドを使用してファイルを追加できると思います:

zip -r zipfile.zip newfile.txt newfile1.txt

-rzipコマンドのオプションを使用すると、ファイルを追加できます。


-r再帰的なオプションです。
ctrl-alt-delor 14年

@リチャード、私はそれを修正するつもりです。少しギミ
リエカヨ14年

@richard、私からは、既存のzip形式のファイルを変更するには、-rコマンドを使用することができると言うことになったソース判明:linuxnix.com/2014/05/...
ryekayo

2
add —既存のエントリを更新し、新しいファイルを追加します。アーカイブが存在しない場合は作成してください。これがデフォルトのモードです。(ファイルを置換または追加するためのオプションは必要ありません。-rディレクトリを追加する場合、またはディレクトリを追加しない場合に使用できます。ディレクトリを追加するだけでコンテンツが不要な場合はいつでも使用できます。。つまり、要するにこの例は正しいが、説明は間違っている。)(テストするのが最善であり、これはマニュアルの解釈にすぎない)。
ctrl-alt-delor 14年

2
安全上の理由から、既存のアーカイブを変更しますか?代わりに、少なくとも安全コピーを作成し、追加を行い、新しいアーカイブにコミットする前にアーカイブの整合性を再確認します。
mdpc 14年


0

私は成功して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

0

zipアーカイブと同じ場所に多くのファイルがあり、それらをすべてアーカイブにコピーする場合は、次の操作を実行できます。

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

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

その後、上記の同じルールに従って、zipファイルを除くすべてのファイルを単純に削除できます。

rm !(zipfile.zip)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.