將解壓縮的檔案加入壓縮資料夾中

將解壓縮的檔案加入壓縮資料夾中

我正在嘗試將解壓縮的檔案添加到現有的已壓縮資料夾中new folder.zipzip -r new folder.zip添加一些解壓縮後的文件可以使用嗎?該指令會壓縮資料夾嗎?有沒有其他方法可以做到這一點?

答案1

使用更新標誌:-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%)

答案2

我相信您可以使用以下命令添加文件:

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

zip 命令的選項-r可讓您新增檔案。

答案3

我成功地使用了該zip命令。與生長(-g) 選項,為了新增folder1/folder2包含檔案fileA.txt和 的子資料夾fileB.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 檔案本身之外找到的所有檔案-u遞歸(選項)來更新您的 zip 檔案(選項)(是 zip 檔案的否定)-r!

然後,您可以按照上述相同的規則簡單地刪除除 zip 檔案之外的所有檔案:

rm !(zipfile.zip)

相關內容