今天在整理文件的時候遇到了一個頭疼的問題。文件夾里面有幾十個子文件夾,一個個壓縮太麻煩,于是上網(wǎng)搜了一下解決方法,命令直接在下面:(注意:壓縮后的文件夾名稱中不要有空格?。?/p>
$ cd ~/tmp
$ for file in $(ls); do zip -r -q $file.zip $file; done
其中~/tmp為壓縮文件夾的路徑,zip為壓縮方式mac壓縮軟件一個蟲子,-r和-q為命令參數(shù),含義如下:
參數(shù)含義
-q
不顯示壓縮進度狀態(tài)
-r
子目錄和子目錄中的所有文件都被壓縮;
注意,如果不添加,只會壓縮文件夾,不會壓縮里面的文件。
-e
加密壓縮文件,終端提示輸入密碼;
還有另一種加密方式,直接在命令行中完成,如:
zip -r -P pwd file.zip文件,直接使用pwd加密file.zip
-m
壓縮完成后刪除原始文件
-o
設置壓縮文件的最后修改時間為當前壓縮時間
此外,還有跨目錄壓縮命令:(注意:壓縮文件夾名不能有空格?。?/p>
$ cd ~/tmp
$ for file in $(ls); do zip -r -q ~/other/$file.zip $file; done
其中~/other/為要壓縮的路徑,其他部分同路徑壓縮方式。
這里之所以沒有采用以下方法的原因:(注意:壓縮文件夾名中不能有空格?。?/p>
$ for file in $(ls); do zip -r -q ~/other/$file.zip ~/tmp/$file; done
原因是它沒有跳轉到壓縮文件夾的路徑,而是直接進入,會和壓縮文件夾之前的路徑一起被壓縮mac壓縮軟件一個蟲子,導致壓縮文件內部結構復雜。