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