最近,数据迁移差点让我抓狂 (2)

结合 Step2 我们最终的脚本命令为:

#!/bin/bash SAVEIFS=$IFS IFS=$(echo -en "\n\b") for file in * do if [ -d $file ] then zip -rq $file.zip $file echo $file was successfully compressed. fi done IFS=$SAVEIFS

压缩成功每个文件都会打印一句压缩成功。

使用

只需要将脚本命令拷贝到你需要压缩的目录下面,就可以对跟脚本文件同级的所有目录进行压缩。

记得脚本文件需要有可执行权限才能运行。

如果提示没有权限,可以先运行如下命令添加权限。

chmod u+x batch_zip.sh 下载

大家可以到 GitHub 仓库上面去直接下载本文最终生成的脚本文件。

https://github.com/nesger/EffectiveTools/blob/master/shell/batch_zip.sh

里面的 README.md 也有具体的用法说明。

优化点

这个脚本命令还有很多地方可以优化,有待大家去完善。

这里列举如下;

支持压缩指定目录而不是固定为当前目录,指定目录通过执行脚本时参数带入

压缩结束后告知本次成功压缩的总数目

增加一个逻辑判断,压缩成功后是否删除原文件?可以通过执行脚本时参数带入

这里就不再描述了,相信对于读者来说,要实现这些优化也是很简单的事情。

温馨提示

其实如果你是要换机器,而且当前系统没有 bug 的话。

推荐使用时间机器(Time Machine)进行系统迁移

它相当于把你一台机器上的整个系统(包括文件)进行一个迁移,省去了你重新安装应用程序和搭建环境的时间。

参考链接:
https://www.cyberciti.biz/tips/handling-filenames-with-spaces-in-bash.html
https://www.cnblogs.com/cocowool/archive/2013/01/15/2861904.html

最近,数据迁移差点让我抓狂

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppxjw.html