问题
在打包目录时需要排除一些子目录和指定后缀的文件
解决
编写如下shell脚本
#!/bin/bash
# 指定需要打包的目录
# 在需要打包的目录下执行脚本
source_dir="."
# 指定排除的目录和后缀
exclude_dirs=( "data" "weixin" )
exclude_suffix=( "*.log" "*.txt" )
# 指定输出的压缩文件名
output_file="mydata.tar.gz"
# 生成排除目录的参数
exclude_args=""
for dir in "${exclude_dirs[@]}"; do
exclude_args="$exclude_args --exclude=$dir"
done
# 生成排除后缀的参数
for suffix in "${exclude_suffix[@]}"; do
exclude_args="$exclude_args --exclude=$suffix"
done
# 打包压缩
tar -czf "$output_file" $exclude_args "$source_dir"