文件批量使用 zip 打包并上传 百度网盘备份。

脚本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash
# author: [email protected]
# version: 2.0
#------settings--------#
# 密码
password='[email protected]'
# 标识
pass="locked"
# 百度网盘路径
uplaodPath="/zip/path/"
# 获取但前脚本的绝对路径
ROOT_PATH="$(dirname "$(readlink -f "$0")")"

#--------zip and upload-----------#
# 压缩与上传文件列表,不递归子目录
zip_file_list=$(find "$ROOT_PATH" -maxdepth 1 -iname "*my.file")
# 设置 IFS,防止路径中有空格
IFS_OLD=$IFS
IFS=$'\n'
# 循环
for filename in $zip_file_list
do
	zipPath=${filename%.*}_${pass}.zip # zip 路径
	zip -rjqP "$password" "$zipPath" "$filename" # 压缩
    [ ! -d "${filename%/*}/done" ] && mkdir "${filename%/*}/done" # 移动路径
    mv "$filename" "${filename%/*}/done/${filename##*/}" # 移动
done

IFS=$IFS_OLD
# 上传百度网盘
/opt/baidupcs/baidupcs upload "*_${pass}.zip" "$uplaodPath" 

解析

zip -rjqP ,r 递归所有子文件,j 不保留文件目录结构, q 安静模式, P 设置密码,其后跟密码。

find "$ROOT_PATH" -maxdepth 1 -iname "*my.file"-maxdepth 1 最大递归深度1,参数放置位置紧跟在 find 路径后。

/opt/baidupcs/baidupcsBaiduPCS-Go 客户端。具体可以看其说明文档。