编写一个shell小程序,对一个目录实现交互式的备份压缩。(根据屏幕的提示选择压缩的方式是gzip还是bzip2、输入备份目录的路径,备份压缩的文件名等)
时间: 2024-10-27 19:14:34 浏览: 10
编写一个简单的Shell脚本来实现这个功能,你可以创建一个名为`backup.sh`的文件,内容如下:
```bash
#!/bin/bash
# 显示菜单选项
echo "请选择备份压缩方式:"
echo "1. gzip"
echo "2. bzip2"
# 获取用户输入
read -p "请输入选择(1/2): " choice
if ! [[ $choice =~ ^[12]$ ]]; then
echo "无效的选择,请重新输入(1或2)"
exit 1
fi
# 获取备份目录路径
read -p "请输入需要备份的目录路径: " backup_dir
# 获取备份文件名
read -p "请输入备份文件名(包括后缀.gz或.bz2): " backup_file
# 根据用户选择执行相应的压缩命令
case $choice in
1) compression="gzip" ;;
2) compression="bzip2" ;;
esac
if [ ! -d "$backup_dir" ]; then
echo "指定的目录不存在,请检查并重新输入"
exit 1
fi
# 如果文件已经存在,询问是否覆盖
if [ -f "$backup_dir/$backup_file" ]; then
read -p "文件已存在,是否覆盖? (y/n) " confirm
if [[ $confirm != "y" ]]; then
echo "操作取消"
exit 0
fi
fi
# 执行压缩
$compression -c "$backup_dir" > "$backup_dir/$backup_file"
# 提示压缩完成
echo "备份压缩完成,文件位于 $backup_dir/$backup_file"
#
阅读全文