今天整理文件時碰到了一件頭疼事,文件夾里有幾十個子文件夾堤如,一個一個壓縮又太麻煩了搀罢,于是上網(wǎng)搜了搜解決方法侥猩,下面直接上命令:(注意:壓縮文件夾名稱中不能有空格欺劳!)
$ cd ~/tmp
$ for file in $(ls); do zip -r -q $file.zip $file; done
其中~/tmp
是被壓縮文件夾的路徑划提,zip
是壓縮方法鹏往,-r
和-q
是命令參數(shù),其含義如下:
參數(shù) | 含義 |
---|---|
-q | 不顯示壓縮進(jìn)度狀態(tài) |
-r | 子目錄及子目錄下文件全部壓縮韩容; 注意,不加的話只有 file 這個文件夾被壓縮奠货,而里面的文件不會被壓縮進(jìn)去 |
-e | 對壓縮文件進(jìn)行加密递惋,終端會提示輸入密碼溢陪; 還有另一種加密方法形真,是直接在命令行里做的咆霜,比如: zip -r -P pwd file.zip file , 直接用pwd 來加密file.zip
|
-m | 壓縮完成時刪除原文件 |
-o | 設(shè)置被壓縮文件的最后修改時間為當(dāng)前壓縮時間 |
除此之外還有跨目錄的壓縮命令:(注意:壓縮文件夾名稱中不能有空格!)
$ cd ~/tmp
$ for file in $(ls); do zip -r -q ~/other/$file.zip $file; done
其中~/other/
是要壓縮到的路徑光酣,其他部分與同路徑壓縮方法相同救军。
這里之所以沒有使用以下方法:(注意:壓縮文件夾名稱中不能有空格!)
$ for file in $(ls); do zip -r -q ~/other/$file.zip ~/tmp/$file; done
是因?yàn)椴惶D(zhuǎn)到被壓縮文件夾的路徑呈驶,而是直接輸入俐东,會連同壓縮文件夾前的路徑一并壓縮虏辫,造成壓縮文件內(nèi)部結(jié)構(gòu)復(fù)雜。