Mac终端使用命令将多个文件夹分别压缩

今天整理文件时碰到了一件头疼事,文件夹里有几十个子文件夹,一个一个压缩又太麻烦了,于是上网搜了搜解决方法,下面直接上命令:(注意:压缩文件夹名称中不能有空格!)

$ cd ~/tmp
$ for file in $(ls); do zip -r -q $file.zip $file; done

其中~/tmp是被压缩文件夹的路径,zip是压缩方法,-r-q是命令参数,其含义如下:

参数 含义
-q 不显示压缩进度状态
-r 子目录及子目录下文件全部压缩;
注意,不加的话只有file这个文件夹被压缩,而里面的文件不会被压缩进去
-e 对压缩文件进行加密,终端会提示输入密码;
还有另一种加密方法,是直接在命令行里做的,比如:
zip -r -P pwd file.zip file, 直接用pwd来加密file.zip
-m 压缩完成时删除原文件
-o 设置被压缩文件的最后修改时间为当前压缩时间

除此之外还有跨目录的压缩命令:(注意:压缩文件夹名称中不能有空格!)

$ 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

是因为不跳转到被压缩文件夹的路径,而是直接输入,会连同压缩文件夹前的路径一并压缩,造成压缩文件内部结构复杂

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • WinRAR - 最新版本的更新 版本 5.50 1. WinRAR 和命令行 RAR 默认使用 RAR ...
    王舒璇阅读 7,011评论 0 2
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,881评论 9 468
  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 12,561评论 1 19
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,187评论 2 33
  • 伏尔泰说:人人手持心中的圣旗,满面红光地走向罪恶。
    陶如雨阅读 3,203评论 0 2