要对系统进行备份,压缩的同时进行加密及分卷。zip aa.zip -r mysql_data  -P 123456 | split -a 2 -d -b 100m aa.zip ab.zip.分步执行可以成功,使用管道就出现如下问题:
split: 无法打开"aa.zip" 读取数据: 没有那个文件或目录请指教!

解决方案 »

  1.   

    我的理解是这样的,不一定对管道|符号是前一个命令的输出作为后一个的输入,zip aa.zip -r mysql_data  -P 123456 命令并没有输出aa.zip(一定要把命令得到的结果和命令输出区分开),所以后面的命令当然出错了。
    你可以使用符号&&。
    zip aa.zip -r mysql_data  -P 123456 && split -a 2 -d -b 100m aa.zip ab.zip
      

  2.   

    zip本身就可以分割,只要加上-s 1m这种参数就可以:
    zip /tmp/aa.zip -s 1m  -P 123456 -r mysql_data
    在tmp下可以看到
    aa.zip aa.z01 ...
    如果一定要用split,/tmp/aa.zip就要替换为“-”,表示输出到stdout,而不是输出到aa.zip这个文件,而split的输入文件名也要替换为“-”,表示从stdin输入。
    zip - -P 123456 -r mysql_data | split - -d -b 1m /tmp/aa.zip. #输出文件前缀(只能叫前缀)最后最好有个“.”
    在tmp下可以看到
    aa.zip.00 aa.zip.01 ...
    具体使用可以查man。