既に圧縮されている既存のフォルダにnew folder.Zip
と言って、圧縮されていないファイルを追加しようとしています。解凍されたファイルを追加した後、Zip -r new folder.Zip
を使用することはできますか?このコマンドはフォルダーを圧縮しますか?これを行うための代替手段はありますか?
更新フラグを使用します:-u
例:
Zip -ur existing.Zip myFolder
このコマンドは、myFolder
(およびその内容)を圧縮してexisting.Zip
に追加します。
高度な使用法:
更新フラグは、実際に受信ファイルを既存のファイルと比較し、新しいファイルを追加するか、既存のファイルを更新します。
したがって、Zipファイル内の特定のサブディレクトリを追加/更新する場合は、必要に応じてソースを更新してから、-u
フラグを使用してソース全体を再度圧縮します。変更されたファイルのみが圧縮されます。
ソースファイルにアクセスできない場合は、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%)
このコマンドを使用してファイルを追加できると思います。
Zip -r zipfile.Zip newfile.txt newfile1.txt
-r
Zipコマンドのオプションを使用すると、ファイルを追加できます。
Zip
コマンドを使用して成功しました。 grow(-g)オプションを使用して、ファイルfolder1/folder2
およびfileA.txt
を含むサブフォルダーfileB.txt
を追加します。
Zip -gr folder.Zip folder1/folder2
-r
はrecurse dirを意味します。
私の理解から-gは、新しいZipファイルを作成するのではなく、Zipファイルを拡張する必要があります(非常に大きなZipアーカイブで役立つ場合があります)。問題が発生した場合は、最初にfolder.Zipにサブフォルダーを作成してみてください(例:):
Zip -g folder.Zip folder1
Zip -g folder.Zip folder2
-uフラグは、
Zip -ur Zip_to_upload.Zip file_to_add.txt
よろしく
Zipアーカイブを使用して同じ場所に多数のファイルがあり、それらすべてをアーカイブにコピーする場合は、次のようにします。
Zip -ur zipfile.Zip !(zipfile.Zip)
これにより、Zipファイルが更新されます(-u
オプション)再帰的(-r
オプション)Zipファイル自体を除くすべてのファイル(!
はzipファイルの否定です)
次に、上記と同じルールに従って、Zipファイルを除くすべてのファイルを削除できます。
rm !(zipfile.Zip)