Linux で Zip アーカイブ内のファイルを削除する

Linux で Zip アーカイブ内のファイルを削除する

スクリプトを実行して、zipアーカイブ内の特定のファイルを削除する必要がある状況があります。以下は一般的な設定です。

/mnt/directory
/mnt/directory/Folder1
/mnt/directory/Folder1/file1.zip
/mnt/directory/Folder1/file2.zip
/mnt/directory/Folder2
/mnt/directory/Folder2/Documents
/mnt/directory/Folder2/file1.zip
/mnt/directory/Folder2/file2.zip

そして、各 zip ファイル内には、多数のファイルとディレクトリがあります。ディレクトリの深さは 20 を超える可能性があるので、何をするにしても、ファイルを再帰的に調べるようにする必要があります。

私はzipinfo -1 /mnt/directory/Folder1/file1.zip '.txt'* コマンドは、file1.zip 内のすべての .txt ファイルを検索しますが、zipinfo コマンドにワイルドカードを使用してすべての zip ファイルを検索することはできません。また、事後にそれらを削除できるようにする必要があります。zip -d /mnt/directory/Folder1/file1.zip ファイル名.txtこれは、フォルダー内にない限り、1 つのファイルのみに対して正常に機能します。したがって、私の状況には理想的ではありません。

必要に応じて解凍できますが、一部は非常に大きいため、いずれにしても再度圧縮する必要があるため、解凍しないことをお勧めします。

ありがとう。

答え1

モジュールアーカイブ::Zip必要なことはできそうです。

関連情報