茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1670101 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_60D_00344.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

軟體應用 : [轉貼]7-Zip 壓縮時略過特定目錄或檔案

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]7-Zip 壓縮時略過特定目錄或檔案

這是我常遇到的困擾 - 壓縮打包 .NET 專案時,packages、bin、obj 等目錄下的 DLL 檔常讓檔案大小暴增數十倍,而這些檔案可透過 NuGet Restore 或重新編譯產生,基本上不需要保留。如果能在壓縮時略過這些資料夾,預期可省下可觀的體積。

平時我都用免費且開源的 7-Zip 壓縮解壓縮(題外話,如果你己經「免費試用」 試用期只有 40 天的 WinRAR 了十幾年,可考慮改用 7-Zip),認真查了,7-Zip GUI 在壓縮時雖然有個 Parameters 欄位:

官方說明指出但該選項只能填入 -m 壓縮參數,調整壓縮率、壓縮演算法等,不支援排除特檔案或資料夾,由 Superuser
討論也確認無法由 GUI 排除,所以要回歸使用命令列工具 7z.exe。範例如下:

X:\Works\MyProject>7z a MyProject.7z MyProject -mx7 -r -xr!bin -xr!obj -xr!packages

其中 mx7 指定壓縮率、r 代表包含子目錄、xr!bin 代表排除所有名為 bin 的子目錄,以此類推。(完整命令列參數列表可參考 Command Line Switches)。

實測結果,原本未排除這些目錄前壓縮檔為 32MB,排除後只需 500KB,相差 64 倍。而大小不到 1MB,才不易踩中電子郵件的附件容量上限或禁止包含DLL、EXE的限制。以上小技巧與大家分享~

【2018-02-09 補充】

若不想每次敲參數,可建立一個 proj-ignore.txt 檔,輸入:(一個項目一行)
bin
obj
packages

之後用 7z a MyProject.7z MyProject –mx7 –r –xr@proj-ignore.txt 即可重複使用排除清單。(感謝網友 agrozyme 回饋)


原文出處:TIPS–7-Zip 壓縮時略過特定目錄或檔案-黑暗執行緒
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]7-ZIP 排除檔案或資料夾

7-ZIP 排除檔案或資料夾

path C:\Program Files\7-Zip  //先切換路徑,因為沒改系統的Path
7z a -tzip -xr!EMR\DB\*.* -x!EMR\hmisa D:\WEB_BACKUP\%CUR-DRB%\EMR_%CUR-DRB%.zip D:\EMR\ >> C:\BACKUPBAT\logs\%CUR-DRB%_ZIP.log\
// 排除不壓縮 目地 來源
//-xr!EMR\DB\*.* 排除EMR裡的DB裡的*.*所有檔案
//x!EMR\hm EMR裡的hm資料夾
// r 表示遞回,重覆執行,過瀘檔案



原文出處: 藍色小威: 7-ZIP 排除檔案或資料夾

冷日範例:

c:\Program Files\7-Zip>7z a -tzip -x!Folder2Zip\html\erfq E:\Folder2Zip >> C:\Users\Public\Documents\Folder2Zip.log

冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]7-Zip 壓縮排除特定目錄
7-Zip 壓縮排除特定目錄
2017 年 06 月 23 日 14:00 本文 734 字,閱讀全文約需 3 分鐘

在 Windows,我一直使用 7-Zip 壓縮文件,壓縮格式則常常選擇比較通用的 zip。那麼 7-Zip 怎麼在壓縮時排除特定的文件夾,使其不包括在內呢?最近需要用到,在此記錄一下。

最近使用 npm 比較多,安裝相關依賴的模塊很方便,但在項目目錄下會有個 node_modules 文件夾,裡面隨隨便便就會有超多的文件。有些時候需要壓縮打包項目文件夾時,就不希望把它也包括在內了,且若不排除它,壓縮時可能還會出錯。既不想在項目目錄下壓縮,總不能壓縮時都把它給刪了。

也許看看壓縮工具,能否在壓縮時排除掉,是比較方便的解決方法。在 7-Zip GUI 工具下,並沒有找到相關的設置。查看幫助文件,找到了命令行版本有個相關的 switch 『-x』 (Exclude filenames)[1]。

語法看著不大明白,但對照例子,照葫蘆畫瓢總該可以。壓縮文件時,排除特定目錄的解決方法如下:

例如當前目錄下有 foo 這個目錄,其結構是這樣的
$ tree
.
`-- foo
    |-- bar
    |   `-- hello.txt
    |   `-- world.txt
    `-- hello.txt

2 directories, 3 files

排除 bar 目錄,則
7z a foo.7z foo -x!foo\bar

排除 foo/hello.txt 文件,則
7z a foo.7z foo -x!foo\hello.txt

排除所有 hello.txt 文件,則
7z a foo.7z foo -xr!hello.txt

排除所有 txt 文件,則
7z a foo.7z foo -xr!*.txt

排除所有目錄文件,則
7z a foo.7z foo -xr!*

所用到的另外一個參數是遞歸 -r[2]。

以上前提是把 7-Zip 的安裝目錄扔到系統環境變量。

原文出處:7-Zip 压缩排除特定目录 | Fooleap's Blog
前一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|