Unix zip コマンドは、新しいアーカイブを作成するのではなく、既存のアーカイブを更新します。

Unix zip コマンドは、新しいアーカイブを作成するのではなく、既存のアーカイブを更新します。
$(which zip) -r ../data.zip .

フォルダの内容は時間の経過とともに動的に変更されるため、最初にhuge.pdfインクルードファイルでテストしてから削除しましたが、まだdata.zip同じサイズを維持しました。解凍すると、huge.pdfそこにあるファイルを見ることができます。

zipコマンドで既存のアーカイブを完全に上書きしたいと思います。

私のアプリケーション(nodejs)でこのシェルコマンドを実行しています。

編集:リンクされた質問が重複しているようではありません。

ベストアンサー1

まずzip、through実行は$(which zip)as実行と同じであることに注意してくださいzip。このwhichユーティリティは、ユーザーパスでプログラムファイルを探します。

既存のZipアーカイブが与えられるzip次へ追加新しいファイル、変える既存のファイルですが、そうではありません。削除ファイルシステムから削除された場合はアーカイブのファイルです。

Zipアーカイブからファイルを削除するには:

$ zip -d archive.zip filename

もちろん、rmアーカイブを再作成する前に削除することもできます。

NodeJSスクリプトの場合は、次のものを使用できます。

rm -f ../data.zip && zip -r ../data.zip .

アーカイブが存在しない場合でも、このフラグは失敗-fしません。rmrm

おすすめ記事