for file in $(ls); do zip -r -q $file.zip $file; done
zip压缩的参数说明:
参数 | 含义 |
---|---|
-q | 不显示压缩进度状态 |
-r | 子目录及子目录下文件全部压缩;注意,不加的话只有file 这个文件夹被压缩,而里面的文件不会被压缩进去 |
-e | 对压缩文件进行加密,终端会提示输入密码;还有另一种加密方法,是直接在命令行里做的,比如:zip -r -P pwd file.zip file , 直接用pwd 来加密file.zip |
-m | 压缩完成时删除原文件 |
-o | 设置被压缩文件的最后修改时间为当前压缩时间 |
这个方法的缺陷是文件夹名称不能含有空格!!
为了解决上述问题, 需要修改IFS
变量,优化后脚本如下:
# 修改IFS变量值
old_IFS=$IFS
IFS=$(echo -en "\n\b")
# 添加-m参数自动清理
for file in $(ls); do zip -r -q -m $file.zip $file; done
#用完恢复老的IFS
IFS=$old_IFS
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。